Deserialize JSON to?
本问题已经有最佳答案,请猛点这里访问。
我的反序列化JSON which need to,but我想要创建的类和属性的名称。P></
是什么让JSON:P></
1 | "[{"id":1,"width":100,"sortable":true}, {"id":"Change","width":100,"sortable":true}]" |
我知道如何做这?P></
6:thanks for)P></
您可以使用javascriptserializer
1 2 3 4 | var list = new JavaScriptSerializer() .Deserialize<List<Dictionary<string, object>>>(json); var id = list[0]["id"]; |
号
或者如果你愿意,json.net
1 | var list2 = JsonConvert.DeserializeObject<List<Dictionary<string, object>>>(json); |
json.net还允许您使用
1 2 | dynamic list = JsonConvert.DeserializeObject(json); var wdth = list[0].width; |
。
使用json.net,可以直接反序列化到匿名类:
1 2 3 4 5 |
。
我假设这里的id可以是任何对象(例如,它可以是int或字符串),宽度必须是int,可排序必须是布尔值。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | 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
我不确定这是不是你要找的。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | 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); } |