gpt4 book ai didi

c# - 在 C# 中反序列化 json 字典数组

转载 作者:太空狗 更新时间:2023-10-29 19:58:14 25 4
gpt4 key购买 nike

我有一个用 javascript 创建的字典数组。序列化为 json 后,我得到以下字符串:

"[{\"key\":\"60236\",\"value\":\"1\"},{\"key\":\"60235\",\"value\":\"gdsfgdfsg\"},{\"key\":\"60237\",\"value\":\"1\"}]"

我很难将其反序列化为 C# 中的列表或字典。

我试过:

Dictionary<int, string> values = JsonConvert.DeserializeObject<Dictionary<int, string>>(Model.Json);

但这不起作用。

最佳答案

有几种方法可以提取键/值对来构建字典:

var dict = "[{\"key\":\"60236\",\"value\":\"1\"},  
{\"key\":\"60235\",\"value\":\"gdsfgdfsg\"},
{\"key\":\"60237\",\"value\":\"1\"}]";

使用 List<KeyValuePair<int, string>>

var dictionary = JsonConvert.DeserializeObject<List<KeyValuePair<int, string>>>(dict)
.ToDictionary(x => x.Key, y => y.Value);

使用代表你的对的自定义对象,然后从你的集合中创建一个字典。

var output = JsonConvert.DeserializeObject<List<Temp>>(dict);
var dictionary = output.ToDictionary(x => x.Key, y => y.Value);

public class Temp
{
public int Key { get; set; }
public string Value { get; set; }
}

最后,如果您对仅用于反序列化的自定义“一次性”对象感到不舒服,您可以稍微降低性能并改用动态对象。

var dictionary = JsonConvert.DeserializeObject<List<dynamic>>(dict)
.ToDictionary (x => (int)x.key, y => (string)y.value);

关于c# - 在 C# 中反序列化 json 字典数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30384599/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com