gpt4 book ai didi

c# - 反序列化 Json C# 检查是否列表

转载 作者:行者123 更新时间:2023-11-30 18:19:19 25 4
gpt4 key购买 nike

<分区>

我在使用 newtonsoft json 反序列化 Json 时遇到问题。

我有课

[Serializable]
public class ValueAdd
{
[JsonProperty(PropertyName = "@id")]
public string Description { get; set; }

[JsonProperty(PropertyName = "@description")]
public string Id { get; set; }
}

[Serializable]
public class ValueAdds
{
public List<ValueAdd> ValueAdd { get; set; }

[JsonProperty(PropertyName = "@size")]
public string Size { get; set; }
}

API 返回愚蠢的两个格式:一个我可以正确序列化:

"ValueAdds":
{
"@size": "3",
"ValueAdd":
[
{
"@id": "2103",
"description": "some property"
},
{
"@id": "2192",
"description": "some property"
},
{
"@id": "2196",
"description": "some property"
}
]
}

但是当他们返回一个属性时,它没有返回一个列表.. 只以这种方式返回:

"ValueAdds":
{
"@size": "1",
"ValueAdd":
{
"@id": "2103",
"description": "some property"
}
}

导致解析器错误
JsonConvert.DeserializeObject<ValueAdds>(_response);

在 Newtonsoft.Json.dll 中发生类型为“Newtonsoft.Json.JsonSerializationException”的第一次机会异常

附加信息:无法将当前 JSON 对象(例如 {"name":"value"})反序列化为类型“System.Collections.Generic.List`1[myproperty]”,因为该类型需要一个 JSON 数组(例如 [ 1,2,3]) 正确反序列化。

我的问题是,有什么方法可以修复它吗??我无法更改 api 响应,需要从我这边更改以尝试解析是否有列表..

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