2017-02-06 1 views
0

API에서 JSON 데이터를 가져 오는 상황을 처리하고 있습니다. 그런 다음이 데이터를 해당 JSON 개체 정의에 매핑하려고 시도하고 있습니다. (이 때문에 여기에 넣지 않을 것입니다.) 모든 최상위 항목 하나에 큰 도움이됩니다. 그러나 검색 문자열에 여러 개의 최상위 JSON 항목이 포함되어있는 상황에서 분할되지 않은 JSON 데이터를 구문 분석 할 수 없습니다.여러 개의 최상위 항목이있는 JSON 문자열을 여러 JSON 객체로 파싱

문자열을 분할 한 다음 개체를 구문 분석하는 효과적인 방법을 찾지 못하는 것 같습니다. 내가 시도

상황은 다음 문서에서 항목을 포함 : Parse Json string in C# https://stackoverflow.com/questions/32273617/parse-json-string-into-liststringhttps://stackoverflow.com/questions/13721686/parse-this-json-string-to-string-array-c-sharp

다음과 같이 내가 하나의 객체에지도를 하나의 항목을 사용하고있는 코드는 다음과 같습니다

public void createTicketObj(string json_string) 
    { 

     //take in the json string containing the items & deserialize it. 
     var item = Newtonsoft.Json.JsonConvert.DeserializeObject<RootObject>(json_string); 
     //works for a single JSON item, however not for multiple records. 

    } 

하는 경우 누군가가 옳은 방향으로 나를 가리켜 주면 대단히 감사하게 될 것입니다! 감사합니다. .

답변

1

여러 레코드가있는 경우 List<T>에 넣어야합니다. 이것을 사용하십시오 :

var item = Newtonsoft.Json.JsonConvert.DeserializeObject<List<RootObject>>(json_string); 

그러나 이것은 단일 항목에는 적용되지 않습니다. 작동 시키려면 먼저 다음을 사용하여 단일 또는 다중 레코드 인 JSON을 확인하십시오.

var token = JToken.Parse(json_string); 

if (token is JArray) 
{ 
// Do something 
} 
else if (token is JObject) 
{ 
// Do something 
} 

희망이 있습니다.

+0

완벽하게 작동합니다. 고맙습니다. – user3801447

+0

기꺼이 도와 드리겠습니다! :) – mindOfAi