使用JSON.NET解析JSON键/值对
我有一个.NET项目。 我正在使用JSON.NET库。 我需要使用这个库来解析一些JSON。 我的JSON看起来像这样:
{"1":"Name 1","2":"Name 2"}
该对象实际上只是键/值对的列表。 我试图弄清楚如何使用JSON.NET 1)解析这个JSON和2)循环键/值对。 有没有办法做到这一点? 如果是这样,怎么样?
我唯一看到的是反序列化为强类型对象。
非常感谢!
您可以反序列化为Dictionary
var dict = JsonConvert.DeserializeObject>(json); foreach(var kv in dict) { Console.WriteLine(kv.Key + ":" + kv.Value); }
由于JObject实现了IDictionary
,你也可以简单地使用JObject.Parse
var dict = JObject.Parse(@"{""1"":""Name 1"",""2"":""Name 2""}");
下面是json,其中subratings具有键值对
{ "data": [ { "id": "288560300", "lang": "en", "subratings": { "Cleanliness": "5", "Sleep Quality": "5", "Service": "5" } } ]} public void LoadJsonKeyValuePair(string json) { Rootobject item = JsonConvert.DeserializeObject(json); } public class Rootobject { [JsonProperty("data")] public List data { get; set; } } public class Datum { [JsonProperty("id")] public string id { get; set; } [JsonProperty("lang")] public string lang { get; set; } [JsonProperty("subratings")] public Dictionary subratings { get; set; } }
您可以使用Newtonsoft.Json反序列化此对象
大家都觉得我也应该分享一下
上面的答案适用于我使用asp.ne t中的文本框
var jsonData = JsonConvert.DeserializeObject> (json_Incoming_fromServer); foreach(var keyvalue in jsonData) { textBox.text = keyvalue.Value; // this will only display the value of that // attribute / key }
感谢EZI