2013-05-27 2 views
2

JSON.stringify() 메소드를 사용하여 json으로 javascript 객체를 변환하려고합니다. 내 문제는 그것이 물체를 stingify 때, 그것은 단지 개체의 키와 값을 stingify입니다. 그것은 개체 이름을 포함하지 않습니다.json은 stingify 중에 객체 이름을 포함하지 않습니다.

출력을 {"Color" : "{"Name":"background","Type":"Color","Value":"Red"}"}과 같이하고 싶지만 출력은 {"Name":"background","Type":"Color","Value":"Red"}입니다.

Here is Demo.

나는 json이 이와 같이 작동하지만 이것을 습득하는 방법을 알고있다. 미리 감사드립니다!

+0

, 당신은, 당신의 오브젝트의 이름을 지정할 수 없습니다. Object의 이름은 다른 Object 속성으로, 예를 들어'id'와 같이 정의하거나 고유하지 않은 경우 이름을 지정하는 데 사용합니다. 개체에서 이름을 정의하려면 @JamesN answer를 사용해야합니다. 'name' 등 원하는 속성을 가진 객체를 지정해야하며,'color' 또는 다른 것으로 불리는 또 다른 속성을 정의하고, 원하는 것을 무엇이든지 정의하고, 그것을'color' 객체의 값으로 추가해야합니다. 이것들은 Object Orientation의 기초입니다. – DaGLiMiOuX

답변

2

참조 createColor 함수가 색 객체를 포함하는 속성을 가진 객체를 반환하도록하십시오 :

function createColor() { 
    var color = new Color(); 
    color.Name = "background"; 
    color.Type = "Color"; 
    color.Value = "Red"; 

    return { Color: color }; 
} 

데모 : 여기에 주어진 답변을 볼 수있는 오브젝트가 많은 언어 만`types`을 이름을 가지고 있지 않기 때문에 http://jsfiddle.net/Guffa/hMwjq/5/

+0

이것은 정확히 내가 원하는 .. 감사합니다! – Sudarshan

6

명시 적으로 JSON에 이름을 지정해야하므로 객체는 자신의 이름을 알고하지 않습니다이 시도

JSON.stringify({'Color': color}); 
+0

원본 계층 구조가 매우 커서이 작업을 수행 할 수 없습니다. 각각의 물건에는 아이들이 너무 많고 아이들의 아이들도 있습니다. 그래서 나는 그것을 수동으로 할 수 없다. 그렇게하는 데는 며칠이 걸릴 것입니다. – Sudarshan

1

:

(function() { 
    var color = createColor(); 
    jsonObject = {}; 
    jsonObject.color = color; 
    var json = JSON.stringify(jsonObject); 
    console.log(json); 
})(); 

당신이 할 수있는 full Demo