【发布时间】:2019-05-10 15:51:16
【问题描述】:
我在本地机器上获得了需要反序列化为类对象 Products 的 Json 文件。我打算使用 Newtonsoft.Json 库,因为它是控制台应用程序。我实现了以下代码,我可以看到 jsonString 但没有做正确的事情 JsonConvert.DeserializeObject(st)???
我的 json 也有带有嵌套记录的产品数组!
json
{
"products": [
{
"id": "1",
"name": "red apple",
"pricePerUnit ": "1.53"
},
{
"id": "2",
"name": "green walnut",
"pricePerUnit ": "0.25"
},
{
"id": "3",
"name": "avocado",
"pricePerUnit ": "0.33"
}
]
}
json转换类
var stream = File.OpenText("C:\\Products.json");
string st = stream.ReadToEnd();
var result = JsonConvert.DeserializeObject<Products>(st);
产品类别
public class ProductEntity
{
public List<Products> products { get; set; }
}
public class Products
{
public string id { get; set; }
public string name { get; set; }
public string pricePerUnit { get; set; }
}
【问题讨论】:
-
您尝试反序列化 Products 对象。但是,您的 Json 数据并不代表 Products 对象。 (注意并遵循 Json 数据中的 Json 语法!)它包含一个带有“products”属性的 Json 对象,该属性具有一个 Json 数组,其中包含多个对象,每个对象都与您的 Products 类匹配。 (您已经有另一个与此结构匹配的类:ProductEntity。尝试将您的 Json 数据反序列化为 ProductEntity 对象)