C# 在C中处理异构JSON#

C# 在C中处理异构JSON#,c#,json,serialization,C#,Json,Serialization,我正在从事的一个项目正在使用Web API返回的异构JSON,我不理解为什么Web服务API需要返回不同的对象图,但这就是返回的对象图 我的问题是 通过同一个api返回不同的对象图是否通常/常见?通过不同的对象图,我指的是一个不同的复杂对象,它可能有或没有其他复杂对象作为属性。如果每次调用都返回相同的属性(要么为null值,要么为复杂对象)作为其值,那么这似乎是合理的,但是在响应中完全忽略这些属性使得很难对C#类进行去序列化 在C#中如何处理JSON异构(反)序列化?对此,反射和运行时代码生成是

我正在从事的一个项目正在使用Web API返回的异构JSON,我不理解为什么Web服务API需要返回不同的对象图,但这就是返回的对象图

我的问题是

  • 通过同一个api返回不同的对象图是否通常/常见?通过不同的对象图,我指的是一个不同的复杂对象,它可能有或没有其他复杂对象作为属性。如果每次调用都返回相同的属性(要么为null值,要么为复杂对象)作为其值,那么这似乎是合理的,但是在响应中完全忽略这些属性使得很难对C#类进行去序列化

  • 在C#中如何处理JSON异构(反)序列化?对此,反射和运行时代码生成是首选方法吗?还是使用dynamic/expando对象


  • 某些API返回不同的对象是有意义的,因为某些字段碰巧是复杂对象,但由于它们有时不包含信息而被忽略,或者端点根据不同的参数返回不同的对象。不确定是否还有其他情况

    对于不同的JSON,您必须稍微了解API返回的数据,并至少获得所需的数据。如果您不完全确定预期或不想为其创建类,则可以使用并反序列化到或

    我还建议阅读API文档,或者使用参数进行某种(边界?)测试,以确定预期的数据