2012-12-06 2 views
0

deserialize해야하는 JSON이 있지만 속성 이름을 사용하여 클래스를 만들고 싶지 않습니다. JSON을 비 직렬화?

"[{"id":1,"width":100,"sortable":true}, {"id":"Change","width":100,"sortable":true}]" 

그래서이 어떻게 할 수

: 여기

내가 JSON에서 무엇을 얻을? 당신이 찾고있는 경우

+0

비 직렬화에 어떤 라이브러리를 사용하고 있습니까? – ryadavilli

+0

어떤 언어 # 당신은 동적 클래스 [링크]를 사용할 수 c를 당신이 사용하는 [1] [1] : http://stackoverflow.com/questions/3142495/deserialize-json-into -c-sharp-dynamic-object – unarity

+0

나는 Newtonsoft.Json을 가지고있다. Nhibernate와 함께 제공된다. – harry180

답변

3

당신은 Json.Net

var list2 = JsonConvert.DeserializeObject<List<Dictionary<string, object>>>(json); 

Json.Net도 사용할 수 있습니다, JavaScriptSerializer

var list = new JavaScriptSerializer() 
        .Deserialize<List<Dictionary<string, object>>>(json); 

var id = list[0]["id"]; 

를 사용하거나 할 수 dynamic

dynamic list = JsonConvert.DeserializeObject(json); 
var wdth = list[0].width; 
0

: 사전에

덕분에 당신은

나는 확실하지 않다 json.net 사용할 수 있습니다. 당신이 원하는 경우

string json = @"{ 
    'CPU': 'Intel', 
    'PSU': '500W', 
    'Drives': [ 
     'DVD read/writer' 
     /*(broken)*/, 
     '500 gigabyte hard drive', 
     '200 gigabype hard drive' 
    ] 
}"; 

JsonTextReader reader = new JsonTextReader(new StringReader(json)); 
while (reader.Read()) 
{ 
    if (reader.Value != null) 
    Console.WriteLine("Token: {0}, Value: {1}", reader.TokenType, reader.Value); 
    else 
    Console.WriteLine("Token: {0}", reader.TokenType); 
} 
0
using System; 
using Newtonsoft.Json; 
using Newtonsoft.Json.Linq; 

class Program 
{ 
    static void Main(string[] args) 
    { 
     string json = "[{\"id\":1,\"width\":100,\"sortable\":true}, {\"id\":\"Change\",\"width\":100,\"sortable\":true}]"; 
     JArray array = JsonConvert.DeserializeObject(json) as JArray; 
     if (array != null) 
     { 
      foreach (JObject jObj in array) 
       Console.WriteLine("{0,10} | {1,10} | {2,10}", jObj["id"], jObj["width"], jObj["sortable"]); 
     } 
     Console.ReadKey(true); 
    } 
} 
Json.net를 사용
2

, 당신은 익명의 클래스에 직접 직렬화 할 수

var json = "[{\"id\":1,\"width\":100,\"sortable\":true}, \"id\":\"Change\",\"width\":100,\"sortable\":true}]"; 

var myExempleObject = new {id = new object(), width = 0, sortable = false}; 

var myArray = JsonConvert.DeserializeAnonymousType(json, new[] {myExempleObject}); 

을 나는 (그것이 INT 또는 문자열이 될 수 있습니다 exemple 같이) ID가 개체 수 있습니다 여기에 있으리라 믿고있어, 폭은해야합니다 int와 sortable는 부울이어야합니다.

관련 문제