我有以下 json:
[
{
"key":"key1",
"value":"val1"
},
{
"key":"key2",
"value":"val2"
}
]
我如何将其反序列化为列表/数组NameValuePair<string, string>
?
Example:
var json = "[{\"key\":\"key1\",\"value\":\"val1\"},{\"key\":\"key2\",\"value\":\"val2\"}]";
var serializer = new JavaScriptSerializer();
var result = serializer.Deserialize<List<KeyValuePair<string,string>>>(json);
上面的代码运行但是列表中的数据是null
。我可以将数组提取到List<Object>
though.
首先,你不应该使用JavaScriptSerializer
,微软甚至明确表示在 JavaScriptSerializer 文档中.
要在 Json.NET 中反序列化对象,语法非常相似:
var json = "[{\"key\":\"key1\",\"value\":\"val1\"},{\"key\":\"key2\",\"value\":\"val2\"}]";
var result = JsonConvert.DeserializeObject<List<KeyValuePair<string,string>>>(json);
Fiddle here
UPDATE
如果您使用 .NET Core 3 / .NET 5 或 .NET 6,系统.Text.Json包含库而无需额外的依赖项。
使用该库反序列化的语法是:
var result = JsonSerializer.Deserialize<List<KeyValuePair<string,string>>>(jsonString);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)