2012-04-19 5 views
0

defintion 목록을 만들기 위해 json-object 구조체를 만들려고합니다. 내가 여기서 뭘하려고 무엇을 참조하십시오 jsfiddlejson 객체에서 정의 목록 생성

var x = 
[{ 
    "dl": 
    { 
     "dt":"head 1" 
     { 
      "dd": 
      [ 
       "listitem 1", 
       "listitem 1", 
       "listitem 1", 
       "listitem 1", 
       "listitem 1" 
      ] 
     }, 
     "dt":"head 2" 
     { 
      "dd": 
      [ 
       "listitem 2", 
       "listitem 2" 
      ] 
     } 
    }  
}] 
; 

JS의 조각을 실행하여 내가 JSON 객체에서 markupt를 만들려고 : 변수 x를 사용

$.each(x["dl"], function(i,v){ 
    console.log(this.dt, this.dd); 
}); 

내가 만들려고 마크 업 이후 :

<dl> 
    <dt>head 1</dt> 
    <dd>listitem 1</dd> 
    <dd>listitem 1</dd> 
    <dd>listitem 1</dd> 
    <dd>listitem 1</dd> 
    <dd>listitem 1</dd> 

    <dt>head 2</dt> 
    <dd>listitem 2</dd> 
    <dd>listitem 2</dd> 
</dl> 

<dl> 
    <dt>head 1</dt> 
    <dd>listitem 1</dd> 
    <dd>listitem 1</dd> 
    <dd>listitem 1</dd> 
    <dd>listitem 1</dd> 
    <dd>listitem 1</dd> 

    <dt>head 2</dt> 
    <dd>listitem 2</dd> 
    <dd>listitem 2</dd> 
</dl> 

마크 업은 내가 생성해야하는 것입니다. 내 JSON 구조에서 무엇이 잘못 되었습니까?

+0

여기에 코드를 게시하십시오. 그런 식으로 2 년 후에 같은 문제를 겪고있는 사람을 도왔습니다. –

+0

당신이하려는 일에 대해 더 알려줄 필요가 있습니다. 이것은 구체적이지 않으며 질문이 끝날 수도 있습니다. –

+1

개체 선언이 유효하지 않습니다. ''dt ''라고 쓰여진 부분은 "head 1"'의 바로 뒤에'{'가 붙습니다. 쉼표 나'} '로 끝내야합니다. –

답변

3

우선 아니요, JSON입니다. 이것은 자바 스크립트 객체 일뿐입니다. JSON은 이고 JavaScript 객체의입니다.

두 번째로, 개체가 올바르지 않습니다. dt 속성을 여러 개 가질 수는 없으므로 그 배열을 만드는 것이 좋습니다. "dt":"head 1" {은 유효하지 않습니다. 또한 x은 객체이어야하며 객체의 배열이 아니어야합니다.

나는이 같은 개체를 만드는 것이 좋습니다 :

var x = { 
    "dl": [{ 
     "dt": "head 1", 
     "dd": ["listitem 1", "listitem 1", "listitem 1", "listitem 1", "listitem 1"] 
    }, { 
     "dt": "head 2", 
     "dd": ["listitem 2", "listitem 2"] 
    }] 
}; 

xdl 속성을 포함하는 객체입니다. x.dl은 객체를 포함하는 배열입니다. 이러한 객체에는 dtdd 속성이 포함되어 있습니다.

이제 당신의 조각은 제대로 작동합니다

$.each(x["dl"], function(i,v){ // you can also use "x.dl" 
    console.log(this.dt, this.dd); 
}); 

를이 객체에서 당신이 원하는 HTML을 쉽게 만들 수 있습니다.

+0

로켓, 고마워요. 내 jsfiddle의 Revision 22에서 나는 당신의 힌트를 따라 그것을 얻었다. 내가 지금 얻지 못했던 것 : 객체를 JSON 객체로 만들기 위해 어떤 변화가 필요할까요? 나는 종종 Ajax 요청 내에서 JSON을 "사용"했지만 일부를 빌드 할 필요가 없었습니다. 문서는 빨간색이지만 틀린 것은 분명히 이해했습니다. Greets –

+1

"JSON Object"와 같은 것은 없습니다. JSON은 JavaScript 객체의 문자열 표현 일뿐입니다. '{a : 12}'는 객체이고 '{ "a": 12}'는 JSON입니다. 'JSON.stringify'를 사용하여 JSON으로 변환하고,'JSON.parse'를 사용하여 객체로 변환 할 수 있습니다. 당신이 무엇을하고 싶은지에 따라 달라집니다. –

+0

3 년 후 .. 나는 당신의 마지막 코멘트 인 :-)와 그것을 읽은 모든 사람들을 위해 : JSONObject라고 불리는이 것이있다. (toooo를 .. .. ""a ":"12 ") http로 가져 가라. : //www.json.org/javadoc/org/json/JSONObject.html –

관련 문제