【发布时间】:2020-02-03 01:42:44
【问题描述】:
我使用的 API 调用返回类似于下面的 JSON
{
"d": {
"results": [
{
"Id": "Test01",
"Version": ""
}
],
"count": 0
}
}
无论如何我可以动态反序列化这个还是应该创建 POCO 类来这样做?
【问题讨论】:
-
答案是肯定的,而且可能是肯定的。第一部分你可以使用
JObject.Parse,第二部分为什么不直接构建一个具体的类并进行强类型化 -
嗨@MichaelRandall 动态地这样做比创建 POCO 类更好吗?
-
C# 是一种强类型语言,其约定使用强类型方法。然而,从网络调用返回的 json 有时至少可以说是令人困惑的,最坏的情况是随机的。在某些情况下,您必须使用 JObject 之类的东西来探索 json 结果。
-
你认为这是一个更适合 JObject 的实例吗?为什么我要问这个,我认为有一个类名“D”是可笑的,但又是 nuget API 返回 JSON 的方式”
-
如果您的结果包含总是具有
Id和version的对象,则使用POCO。如果不是,并且您希望一个对象中的版本和下一个对象中的完全不同的属性,请使用动态对象而不是强类型类
标签: c# .net json deserialization