json 反序列化字典列表|C#

jgovgodb  于 2023-01-14  发布在  C#
关注(0)|答案(1)|浏览(162)

我有一个来自API的对象

{
  "1569801600000": 260174000000,
  "1601424000000": 274515000000,
  "1632960000000": 365817000000,
  "1664496000000": 394328000000,
  "index": "CarIndex"
},
{
  "1569801600000": 260174000000,
  "1601424000000": 274515000000,
  "1632960000000": 365817000000,
  "1664496000000": 394328000000,
  "index": "BooksIndex"
},
{
  "1569801600000": 161782000000,
  "1601424000000": 169559000000,
  "1632960000000": 212981000000,
  "1664496000000": 223546000000,
  "index": "TablesIndex"
},

在我的API响应中,我有32个这样的条目,这里仅举3个例子。
正如您在这里看到的keyValuePair列表。我尝试过这样的情况

var objectResult = JsonConvert.DeserializeObject<List<KeyValuePair<string, string>>>(resultString);

有例外。
我办过这样的案子

var objectResult = JsonConvert.DeserializeObject<List<Dictionary<string, string>>>(resultString);

有例外。
在未来这个键1569801600000可以是不同的,所以我不能创建[JsonProperty("1569801600000")的模型。你能帮助我吗?

cbjzeqam

cbjzeqam1#

这对我很有效

List<Dictionary<string, string>> objectResult = JsonConvert.DeserializeObject<List<Dictionary<string, string>>>(json);

但是如果你想要键值对的列表

List<List<KeyValuePair<string,string>>>  objectResult = JArray.Parse(json)
                                   .Select(i=> ((JObject)i).Properties()
                                   .Select(ja => new KeyValuePair<string, string>(
                                        ja.Name, ja.Value.ToString() )).ToList()
                                    ).ToList();

相关问题