gpt4 book ai didi

c# - 反序列化 JSON 对象与数组

转载 作者:行者123 更新时间:2023-12-05 01:23:10 27 4
gpt4 key购买 nike

我从 REST-API 得到以下 JSON 消息作为返回:

{
"result":{
"CONTACT":[
102565,
523652
],
"COMPANY":[
30302
]
}
}

为了反序列化,我将 Newtonsoft.Json 与以下类一起使用:

public class DuplicateResponseBody {
[JsonProperty("result")]
public ContactCompany Result { get; set; }
}

public class ContactCompany {
[JsonProperty("CONTACT")]
public int[] ContactIds { get; set; }
[JsonProperty("COMPANY")]
public int[] CompanyIds { get; set; }
}

这没有问题。

但是当没有值时,REST-Response 看起来像

{
"result":[]
}

结果不是数组,反序列化将不再有效。我无法更改 REST-API。

有人有想法吗,我该如何解决反序列化步骤的问题?

最佳答案

我认为您不需要任何转换器,只需向您的类添加一个 json 构造函数就足够了

public class DuplicateResponseBody
{
[JsonProperty("result")]
public ContactCompany Result { get; set; }

[Newtonsoft.Json.JsonConstructor]
public DuplicateResponseBody(JToken result)
{
if ( result.Type.ToString()!="Array")
Result= result.ToObject<ContactCompany>();
}

public DuplicateResponseBody() {}
}

关于c# - 反序列化 JSON 对象与数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72770505/

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