2013-06-08 3 views
0

페이스 북의 친구 오브젝트에 대한 변환 코드를 작성하고 있는데 json2csharp converter을 사용해 보았습니다. 구조를 제공하기 위해 많은 클래스를 작성하는 것으로 보입니다.JSON 데이터를 .NET 클래스

JSON

{ 
    "data": [ 
    { 
     "name": "Name1", 
     "id": "34535345", 
     "picture": { 
     "data": { 
      "url": "https://fiamge.jpg", 
      "is_silhouette": false 
     } 
     } 
    }, 
    { 
     "name": "Name2", 
     "id": "23424234", 
     "picture": { 
     "data": { 
      "url": "https://fimage.jpg", 
      "is_silhouette": false 
     } 
     } 
    }] 
} 

CSHARP json2csharp

public class Data 
{ 
    public string url { get; set; } 
    public bool is_silhouette { get; set; } 
} 

public class Picture 
{ 
    public Data data { get; set; } 
} 

public class Datum 
{ 
    public string name { get; set; } 
    public string id { get; set; } 
    public Picture picture { get; set; } 
} 

public class RootObject 
{ 
    public List<Datum> data { get; set; } 
} 

은 JSON의 아주 간단한 조각하는 클래스의 많은 것 같다. Picture -> Data 관계에 대한 필요성을 극복하고 Picture 클래스 만 가질 수있는 방법이 있습니까?

답변

0

당신은 Json.Netdynamic

dynamic dynObj = JsonConvert.DeserializeObject(json); 
foreach (var item in dynObj.data) 
    Console.WriteLine(item.picture.data.url); 
0

는 사실, 당신이 제공하는 JSON에 대한 클래스 다만 적당한 양처럼 보인다 사용할 수 있습니다. PictureData 클래스는 JSON을 그대로 나타냅니다. 이게 왜 너를 괴롭히는 특별한 이유가 있니?

+0

그래프가 커짐에 따라 실제로 많이하지 않는 클래스가 많이 생길 수 있습니다. 'DataMembers'에 이름을 붙일 수 있다면'DataContract'가 같은 방식으로 행동한다면 좋을 것입니다. 그 일을 할 수있는 방법이 있는지 궁금 해서요. 그러나 시도한 후에 그런 식으로 일하는 것처럼 보이지 않습니다. – Jammer

+0

수업의 규모는 왜 중요합니까? 컴파일러가 처리합니다. – zmbq

+0

나는 절대 최소 코드에 대해 약간의 항문을 가지고있다. – Jammer

관련 문제