2013-04-19 3 views
0

를 준수합니다.개체 정의는 내가이 JSON 정의가 JSON 정의

내가 겪고있는 문제는 "유형 1"과 "유형 2"입니다. 내 수업이 보이는 경우 MYTYPE는

public class mytypes{ 

    public int id { get; set; } 
    public List<mytype> types { get; set; } 
} 

입니다

여기서

public class mytype { 

    public string url { get; set; } 
    public string desc { get; set; } 
} 

데이터가 데이터베이스에서 오는이 내부 객체와의 "종류"의 배열이 아닌 하나의 "종류"개체를 생성 그것은 정의 (타입 1, 타입 2)로서의 기술을 가지고있다.

배열이 아닌 "유형"내부에 "유형 1"과 "유형 2"가 생성되도록 클래스를 변경하려면 어떻게해야합니까? 대신 사용

+0

목록에서 "유형"의 알 수없는 번호가 있나요? 항상 같은 번호라면 JSON을 할 수 있지만 실제로 목록 개체이면 LIST는 JSON의 "types"라고 쓰여지고 모든 것이 아래로 내려 가게됩니다. 나는 이것이 도움이되는 것을 발견하지 못했고, 수동으로 직렬화하는 것을 끝내었다. – Jasmine

+0

예, 숫자는 데이터베이스에서 가져온 것이므로 언제든지 알 수 있습니다. 가능한 경우 수동으로 직렬화하지 않아도되도록 노력했습니다. –

+0

그래, 나는 그것을 피하려고했지만 자동화 된 직렬화는 특별한 일을 할 수 없다. 반드시 전체 계층 구조를 보여 주어야하기 때문에 목록을 다른 객체를 포함하는 객체로 포함해야합니다. 아래에 제안 된 사전은 같은 방식입니다. – Jasmine

답변

1

:

public List<mytype> types { get; set; } 

그렇게 재산이 될 것입니다 Dictionary을 사용해야합니다 :

public Dictionary<string,mytype> types { get; set; } 
+0

Garath에게 감사드립니다. 내가 이해하지 못하는 유일한 부분은 "유형 1", "유형 2"가 어떻게 할당 되었습니까? –

+0

올바른 키를 사용하여 사전에 요소를 추가하기 만하면됩니다. Liek this : types.Add ("type one", 새로운 mytype {url = "http : // cxxxx /", desc = "something"}); –

+0

아, 네, 알겠습니다. 그게 다야 고마워. –