2009-03-24 2 views
1

JSON에서 서버 측 객체로 비 직렬화 된 간단한 객체가 있습니다.JSON에서 하위 객체를 나타내는 올바른 구문은 무엇입니까?

JSON :

서버 측에
{ 
    name    : 'ObjectName', 
    host    : 'http://localhost', 
    ImagesPath  : '/Images/' 
} 

, 위의 JSON 코드가 System.Web.Script.Serialization.JavaScriptSerializer를 통해이 C#을 객체로 역 직렬화됩니다 : 현재

public class InfoObject 
{ 
    public string Name { get; set; } 
    public string Host { get; set; } 
    public string ImagesPath { get; set; } 
} 

위의 잘 작동하지만 내가 추가하는 생각 그것에 많은 속성. 모든 속성이 하나의 긴 클래스에 모두 포함되지 않도록 추가 데이터를 보유 할 하위 개체를 추가하고 싶습니다.

하위 개체 개체 :

public class TestSubObject 
{ 
    public string TestString { get; set; } 
} 

그래서 새로운 C#을 객체처럼 보이는 것을 :

public class InfoObject 
{ 
    public string Name { get; set; } 
    public string Host { get; set; } 
    public string ImagesPath { get; set; } 
    public TestSubObject MoreInformation {get;set;} 
} 

그러나 문제는 하위의 초기화를 표현하는 방법을 모르는 것입니다 JSON의 -object 속성 어쩌면 내가 뻔한 무엇인가 놓쳤을 지 모르지만 구글 검색은 즉시 답을 얻지 못했다.

{ 
    name    : 'ObjectName', 
    host    : 'http://localhost', 
    ImagesPath  : '/Images/', 
    MoreInformation.TestString : 'hello world' 
} 

그러나 더 주사위를, 그래서 어떻게 제대로 JSON 위를 쓰는가 :

나는 시도하지?

답변

8

이처럼 쓸 수 있습니다 :

{ 
    Name    : 'ObjectName', 
    Host    : 'http://localhost', 
    ImagesPath  : '/Images/', 
    MoreInformation : {TestString : 'hello world'} 
}; 

// And to access the nested object property: 
obj.MoreInformation.TestString 
+0

감사합니다. 이것은 내가 찾던 해답이었습니다. –

1

JSON 자체가 "개체"표기법, 단지 "개체"

{ 
    key: value, 
    key2 : { inner_key : value, inner_key2 : value } 
} 

당신이 볼 수 있듯이, 표현의 내부에 다른 객체를 넣어 { ... }은 객체를 산출합니다.

관련 문제