2016-09-30 3 views
0
나는이 형식의 이상한 공식화 JSON 응답 문자열 한

: 반환되는 배열이 유일 (위의 결과 값)C# 비표준 JSON 구문 분석

{ 
    "Result": <this is the array of Ticket objects>, 
    "IsLastPage": true, 
    "NextSkip": 1, 
    "NextTake": 1, 
    "PageCount": 2, 
    "TotalCount": 3, 
    "QueryResultHash": "sample string 4" 
} 

보통 내가 JSON 배열에 접근 할을 그래서 같은 :

var jsonArray = JArray.Parse(resultString); 
foreach (var jsonObject in jsonArray) 
{ ... } 

하지만 내가 개별적으로 7 개 값을 얻을 배열을 구문 분석 할 수 있도록 위의 문자열을 분해하는 방법을 잘 모르겠습니다. 어떤 제안?

+0

일반적으로 json의 유일한 항목으로 배열을 가져 오는 것을 의미합니까? –

+1

json이 실제로 어떻게 생겼습니까? I.E'<티켓 객체 배열>은 실제 값입니까? – Darren

+0

아니요, 배열은 { "Id": 4412, "Rev": 30, "Fields": { "System"...}과 같이 공식화 된 문자열입니다. 일반적으로 JSON –

답변

1

가능한 경우 Newtonsoft.Json (https://www.nuget.org/packages/Newtonsoft.Json/) 라이브러리를 사용합니다.

그런 다음 ResponseContainer 클래스를 만들 수 있습니다. 뭔가 같은

//generated by http://json2csharp.com/ 
public class ResponseContainer 
{ 
    public List<object> Result { get; set; } 
    public bool IsLastPage { get; set; } 
    public int NextSkip { get; set; } 
    public int NextTake { get; set; } 
    public int PageCount { get; set; } 
    public int TotalCount { get; set; } 
    public string QueryResultHash { get; set; } 
} 

은 그럼 당신은

JsonSerializer serializer = new JsonSerializer(); 
ResponseContainer response = serializer.Deserialize<ResponseContainer>(jsonString); 

지금 당신은 C#을 객체와 JSON 응답의 필드에 액세스 할 수 있습니다 할 수 있습니다.

+1

모델 또는 컨테이너의 모양을 알기 위해이 사이트 [json2csharp] (http://json2csharp.com/)를 사용할 수 있습니다 –

+0

니스 , 그것은 꽤 편리한 도구입니다. 에서 생성 된 코드를 수정하겠습니다. –