如何转换一个JSON数组像这样
[{"myKey":"myValue"},
{"anotherKey":"anotherValue"}]
Run Code Online (Sandbox Code Playgroud)
到带有 json.net 或系统类的 C# 字典。
json.net 可以直接序列化为字典,但前提是您将其提供给对象而不是数组。
也许转换为 KeyValuePairs 数组会有所帮助
using System.Linq;
var list = JsonConvert.DeserializeObject<IEnumerable<KeyValuePair<string, string>>>(jsonContent);
var dictionary = list.ToDictionary(x => x.Key, x => x.Value);
Run Code Online (Sandbox Code Playgroud)
对于任何感兴趣的人 - 这也有效:
JSON 示例:
[{"device_id":"VC2","command":6,"command_args":"测试args10"}, {"device_id":"VC2","command":3,"command_args":"测试args9"} ]
C#:
JsonConvert.DeserializeObject<List<JObject>>(json)
.Select(x => x?.ToObject<Dictionary<string, string>>())
.ToList()
Run Code Online (Sandbox Code Playgroud)
小智 5
其实很简单:
假设您在字符串中获取 json,如下所示:
string jsonString = @"[{"myKey":"myValue"},
{"anotherKey":"anotherValue"}]";
Run Code Online (Sandbox Code Playgroud)
然后你可以使用 JSON.NET 反序列化它,如下所示:
JArray a = JArray.Parse(jsonString);
// dictionary hold the key-value pairs now
Dictionary<string, string> dict = new Dictionary<string, string>();
foreach (JObject o in a.Children<JObject>())
{
foreach (JProperty p in o.Properties())
{
string name = p.Name;
string value = (string)p.Value;
dict.Add(name,value);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19750 次 |
| 最近记录: |