2012-01-09 4 views
3

JSON 객체의 형태로 RESTful API에서 응답을받습니다. 일반적으로, 키를 알고있을 때 이것을 파싱 할 수 있습니다. 예를 들어,이 같은 User 클래스를 생성 :JSON 구문 분석 C#

[DataContract] 
public class User 
{ 
    [DataMember] 
    public string id { get; set; } 

    [DataMember] 
    public string name { get; set; } 

    [DataMember] 
    public string email { get; set; } 
} 

내 JSON 디시리얼라이저에 응답을 읽어 당겨 그것을 출력을 이야기하기 만하면됩니다은 < 사용자 > 내가 갈 수 있어요. 이는 판매 데이터와 같은 다른 요청을 할 때 짧아집니다. 내가 돌아올 응답은 다음과 같이이다 : 나는 [DataContract]으로이 클래스를 모델링 할 수 있다면

{ 
    "2010-11-24": { 
    "country": null, 
    "iso": null, 
    "product": null, 
    "downloads": 39, 
    "net_downloads": 38, 
    "updates": 6, 
    "revenue": "19.02", 
    "returns": 1, 
    "gift_redemptions": 0, 
    "promos": 0 
    }, 
    "2010-11-25": { 
    "country": null, 
    "iso": null, 
    "product": null, 
    "downloads": 63, 
    "net_downloads": 63, 
    "updates": 6, 
    "revenue": "37.00", 
    "returns": 0, 
    "gift_redemptions": 0, 
    "promos": 0 
    } 
} 

나는 황금 것,하지만 첫 번째 키는 일이기 때문에, 그 하드 코드는 할 수 없습니다.

이런 종류의 응답을 받아서 강력한 형식의 C# 클래스로 변환 할 수있는 JSON 라이브러리가 있습니까? 기록을 위해

, 나는 JSONHelper used in this SO question.

+0

키는'string' 또는'DateTime'으로 나타내야합니까? – svick

+0

문자열이나 날짜 시간으로 가져옵니다. 중요하지 않습니다. –

답변

5

JSON.NET을 사용하고하는 가장 좋은/빠른/가장 안정적인 JSON C#을 라이브러리로 인식되고 있습니다. 나는 그것을 사용했고, 광고 된대로 작동합니다.

+0

그래서, 설명서를 다운로드하여 살펴 보았습니다. 전에했던 것과 정확히 똑같은 일을 할 수있는 것처럼 보입니다. JSON을 비 직렬화하는 클래스를 만들었지 만 여전히 붙어 있습니다. 키를 모르는 클래스로 어떻게 비 직렬화합니까? –