2013-09-06 2 views
1

JSON 문자열에서 모든 동적 이름과 값을 가져와야합니다. JSON 문자열 매개 변수를 사용하여 하나의 함수를 만들겠습니다. 그 매개 변수 JSON 문자열 이름과 값을 변경할 수 있지만 그 JSON 문자열에서 모든 이름과 값을 인쇄해야합니다.JSON 문자열의 모든 동적 이름과 값 읽기

예제 코드 : 나는 루프와이 JSON에서 모든 값을 취득 할

json : { "data": 
     [{ 
     "id": "001", 
     "Name": "Somu", 
     "Address": "Erode", 
     }, 
     { 
     "id": "002", 
     "Name": "Ajal", 
     "Address": "USA", 
     }] 
     } 

. 속성 이름이 변경되거나 속성 수를 늘릴 수 있습니다. 전달 된 JSON에서 모든 값을 가져와야합니다.

Expected Result : 1 st loop 
      Id = 001 
      Name =Somu 
      Address =Erode 
     2 nd loop 
      Id = 002 
      Name =Ajal 
      Address =USA 
+0

어떤 시리얼 라이저를 사용하고 있습니까? 또는 어떤 것을 사용할 수있는 유연성이 있습니까? IIRC 이것은 json.net에서 JavaScriptSerializer와 같은 것보다 훨씬 쉽습니다. –

답변

4

사용 Json.Net

string json = @"{ ""data"": [ { ""id"": ""001"", ""Name"": ""Somu"", ""Address"": ""Erode"", }, { ""id"": ""002"", ""Name"": ""Ajal"", ""Address"": ""USA"", }] }"; 

var result = JObject.Parse(json) 
       ["data"] 
       .Select(x => new 
       { 
        id = (string)x["id"], 
        Name = (string)x["Name"], 
        Address = (string)x["Address"], 
       }) 
       .ToList(); 

이상의 동적 버전

var result = JObject.Parse(json) 
       ["data"] 
       .Select(x=> x.Children().Cast<JProperty>() 
          .ToDictionary(p=>p.Name,p=>(string)p.Value)) 
       .ToList(); 

.

var result = JObject.Parse(json)["data"] 
        .ToObject<List<Dictionary<string,string>>>(); 
+0

두 번째 것만 예상했습니다. 루프를 통해 결과 값을 읽는 방법 – user2354274

+0

'foreach (var item in result)'를 사용해 보셨습니까? – I4V