我有一个.NET项目.我正在使用JSON.NET库.我需要使用这个库来解析一些JSON.我的JSON看起来像这样:
{"1":"Name 1","2":"Name 2"}
Run Code Online (Sandbox Code Playgroud)
该对象实际上只是键/值对的列表.我试图弄清楚如何使用JSON.NET 1)解析这个JSON和2)循环键/值对.有没有办法做到这一点?如果是这样,怎么样?
我唯一看到的是反序列化为强类型对象.
非常感谢!
EZI*_*EZI 52
你可以反序列化 Dictionary<string, string>
var dict = JsonConvert.DeserializeObject<Dictionary<string, string>>(json);
foreach(var kv in dict)
{
Console.WriteLine(kv.Key + ":" + kv.Value);
}
Run Code Online (Sandbox Code Playgroud)
自JObject实现以来IDictionary,您也可以简单地使用JObject.Parse
var dict = JObject.Parse(@"{""1"":""Name 1"",""2"":""Name 2""}");
Run Code Online (Sandbox Code Playgroud)
小智 6
下面是 json 其中子评级有键值对
{
"data": [
{
"id": "288560300",
"lang": "en",
"subratings": {
"Cleanliness": "5",
"Sleep Quality": "5",
"Service": "5"
}
}
]}
public void LoadJsonKeyValuePair(string json)
{
Rootobject item = JsonConvert.DeserializeObject<Rootobject>(json);
}
public class Rootobject
{
[JsonProperty("data")]
public List<Datum> data { get; set; }
}
public class Datum
{
[JsonProperty("id")]
public string id { get; set; }
[JsonProperty("lang")]
public string lang { get; set; }
[JsonProperty("subratings")]
public Dictionary<string, object> subratings { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
您可以使用 Newtonsoft.Json 反序列化该对象