gpt4 book ai didi

c# - 使用 JSON.NET 反序列化 json - 无法反序列化,因为该类型需要 JSON 数组 c#

转载 作者:行者123 更新时间:2023-11-30 23:05:04 24 4
gpt4 key购买 nike

这是我的json

{
"odata.metadata" : "",
"value" : [
{
"ItemCode" : "NUOVO_ELEMENT1406",
"ItemName" : "Prova3",
"QuantityOnStock" : 0.0
},
{
"ItemCode" : "NUOVO_ELEMENT14506",
"ItemName" : "Prova3",
"QuantityOnStock" : 0.0
},
{
"ItemCode" : "NUOVO_ELEMENT1455106",
"ItemName" : "Prova3",
"QuantityOnStock" : 0.0
},
{
"ItemCode" : "NUOVO_ELEMENT1455a106",
"ItemName" : "Prova3",
"QuantityOnStock" : 0.0
},
{
"ItemCode" : "NUOVO_ELEMENT145574a106",
"ItemName" : "Prova3",
"QuantityOnStock" : 0.0
},
{
"ItemCode" : "NUOVO_ELEMENT16",
"ItemName" : "Prova3",
"QuantityOnStock" : 0.0
},
{
"ItemCode" : "NUOVO_ELEMENT1d6",
"ItemName" : "Prova3",
"QuantityOnStock" : 0.0
},
{
"ItemCode" : "NUOVO_ELEMENT433",
"ItemName" : "Prova3",
"QuantityOnStock" : 0.0
},
{
"ItemCode" : "NUOVO_ELEMENT1d464645454546",
"ItemName" : "UPDATE",
"QuantityOnStock" : 0.0
},
{
"ItemCode" : "NUOVO_ELEMENT433787079",
"ItemName" : "Prova3",
"QuantityOnStock" : 0.0
},
{
"ItemCode" : "NUOVO_ELEMENT43389898989787079",
"ItemName" : "Prova3121",
"QuantityOnStock" : 0.0
}
]
}

这是实体,负责映射json

public class Item
{
[JsonProperty(PropertyName ="ItemCode")]
public string ItemCode { get; set; }
[JsonProperty(PropertyName ="ItemName")]
public string ItemName { get; set; }
[JsonProperty(PropertyName ="QuantityOnStock")]
public decimal QuantityOnStock { get; set; }
}

有了这个类,我想到了json

internal class JsonParser
{

internal void Deserialize(string v)
{

List<Item> it = JsonConvert.DeserializeObject<List<Item>>(v);
foreach (Item item in it)
{
Console.WriteLine("{0},{1}", item.ItemName, item.ItemCode);
}

}
}

我尝试删除 List 并仅使用 Item,如果我的 json 仅包含一个元素当然没问题,但如果我有更多元素元素,我尝试使用列表时收到标题中描述的错误。

最佳答案

这是因为你试图反序列化的对象不正确,你应该尝试下面的类:

public class Rootobject
{
[JsonProperty("odata.metadata")]
public string odatametadata { get; set; }
public Value[] value { get; set; }
}

public class Value
{
public string ItemCode { get; set; }
public string ItemName { get; set; }
public float QuantityOnStock { get; set; }
}

var items = JsonConvert.DeserializeObject<Rootobject>(json);

输出:

enter image description here

关于c# - 使用 JSON.NET 反序列化 json - 无法反序列化,因为该类型需要 JSON 数组 c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48987580/

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