使用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