提问人:Bernard Black the Second 提问时间:10/27/2023 最后编辑:Heretic MonkeyBernard Black the Second 更新时间:10/28/2023 访问量:78
如何反序列化具有不同结果的 JSON 对象
how to deserialize a json object with different outcomes
问:
当我调用 Web API 时,我得到了一个普通对象或一个错误对象(如果发生错误),如下所示;
{
"fault": {
"correlationId": "ea0323ad-8883-47e6-bcc7-6acf17218b92",
"faultCode": "ERR-044",
"faultString": "Authentication policy failed! JWT is not valid!",
"faultStatusCode": "401",
"responseFromApi": ""
}
}
是否可以在不知道它是普通对象或错误对象的情况下反序列化返回的 json 字符串?
答:
1赞
Qiang Fu
10/28/2023
#1
只需检查它是否是带有键“fault”的 json 对象,然后选择去掉模型或错误。
string jsonString= await response.Content.ReadAsStringAsync();
var jsonData = (JObject)JsonConvert.DeserializeObject(jsonString);
if (jsonData.ContainsKey("fault"))
{
...
}
else
{
...
}
评论
HttpResponseMessage.IsSuccessStatusCode
HttpResponseMessage.EnsureSuccessStatusCode()