2014-01-23 4 views
0

복잡한 JSON 개체를 "stingifying"할 때 올바른 결과를 얻는 데 문제가 있습니다. 예를 들어 : 위의 예에서JavaScript DEEP stringify

{ 
    "a": "a", 
    "b": [ 
    [ 
     { 
     "c": "c", 
     "d": "d", 
     "e": "e" 
     }, 
     { 
     "c": "c", 
     "d": "d", 
     "e": "e" 
     }, 
     { 
     "c": "c", 
     "d": "d", 
     "e": "e" 
     } 
    ], 
    [{ 
     "c": "c", 
     "d": "d", 
     "e": "e" 
     }], 
    [ 
     { 
     "c": "c", 
     "d": "d", 
     "e": "e" 
     }, 
     { 
     "c": "c", 
     "d": "d", 
     "e": "e" 
     } 
    ] 
    ], 
    "f": [ 
    { 
     "g": "g", 
     "h": "h" 
    }, 
    { 
     "g": "g", 
     "h": "h" 
    }, 
    {"g": "g"} 
    ] 
} 

a 심지어 f 캐릭터 라인 화 중대한는하지만 난이 있다면 내가 읽은 바로는, b의 값의 내용이 (같은 빈 배열을 캐릭터 라인 화) "잃어버린"해요 JSON의 깊이가 한 단계 깊어지면 문자열을 심하게 처리 할 필요가 있지만 b 키의 내용을 제대로 볼 수는 없습니다.

누구나 어떻게 할 수 있습니까?

p.s. 노드는 심지어 하나 또는 두 개가 아닌 3 개 또는 그 이상의 레벨을 가질 수 있습니다.

업데이트를 주셔서 감사합니다 : 나는, 내가 연관 배열 대신 객체의 배열 (I가 알고 뭔가를 얻고 경우에 $ .tmpl 몇 가지 이유를 사용하고 문제를 발견했습니다 JS에서 연관 배열과 같은 것은 없지만 그것은 내가 얻고 자하는 것입니다. 두 번째 레벨의 "b"값에서 객체가 아닌 키 - 값 쌍이있는 크기 0의 배열입니다. 스트리 스 화는 지금 내가해야 할 일을하고 있습니다. 감사합니다

+2

어디서 읽었는지 모르겠습니다. JSON.stringify는 모든 레벨을 처리해야합니다. 당신이 무엇을 얻었는지 보여줄 수 있고 무엇을 잃어 버리는 지 지적 해 주시겠습니까? – Barmar

+0

이 과제 전에 a, c, d, e, g 및 h의 값은 무엇입니까? –

+1

저에게 잘 작동합니다 : http://jsfiddle.net/barmar/kEf82/3/ – Barmar

답변

1

참조하십시오 : Why doesn't JSON.stringify display object properties that are functions? 어떤 값이 허용되는지 보여주는 답변의 다이어그램이 있습니다. "undefined"는 그 중 하나가 아닙니다. 거기에있는 주석에 명시된 바와 같이, undefined 값은 stringify를 사용할 때 생략됩니다.

+0

고맙습니다. 코드와 결과를 다시 살펴 보았습니다. 문제를 발견했습니다 (업데이트 내용). 왜 그런 일이 일어나는지 알아야합니다. 10 배 – Erez