需要帮助在WPF中反序列化字典Json

本文关键字:反序列化 字典 Json WPF 帮助 | 更新日期: 2023-09-27 18:05:56

我正在尝试解析Json字符串并将部分放入字典。我遇到了一个问题,试图反序列化到字典中需要"键"answers"值"术语,这对我来说是不可用的。谁能给我推荐一个解决方法?如果可能的话,我更喜欢坚持使用DataContractJsonSerializer。提前谢谢你。

{"盒子":2"盒子":({"苹果":"6","香蕉":"3","橙子":"4","柠檬":"2"},{"桃子":"4","莱姆":"5","甜瓜":"5","苹果":"2"}]}

需要帮助在WPF中反序列化字典Json

我强烈建议您研究一下JSON.NET。它是一个功能齐全且健壮的库,是(在我看来)在任何。net应用程序中处理JSON的最佳方式。

在MongoDB的c#驱动程序中还附带了一个JSON序列化库。你可以从这里开始阅读

你也可以使用快速轻量级的ServiceStack的Json序列化器来为你处理这个问题,它允许你反序列化强类型的POCO或动态使用JsonObject:

使用强类型POCO

var fruitsJson = "{ '"boxes'": 2, '"box'": [ { '"apples'": '"6'", '"bananas'": '"3'", '"oranges'": '"4'", '"lemons'": '"2'" }, { '"peaches'": '"4'", '"limes'": '"5'", '"melons'": '"5'", '"apples'": '"2'" } ] }";
public class Fruits
{
    public int boxes { get; set; }
    public List<Dictionary<string,string>> box { get; set; }
}
var fruits = fruitsJson.FromJson<Fruits>();

动态使用JsonObject

var jsonObj = JsonObject.Parse(fruitsJson);
var boxes = jsonObj["boxes"];
var box = jsonObj["box"].FromJson<List<Dictionary<string,string>>>();