RestSharp:识别不在POCO中的JSON字段

时间:2017-08-15 00:30:00

标签: c# json deserialization restsharp

我正在使用RestSharp来调用REST API,并将JSON反序列化为POCO。而且在大多数情况下,这都非常有效。

我面临的挑战是API没有完整记录。它主要是每个端点返回的JSON有效负载的示例。我用这些来为这些端点构建POCO。

但这些例子有点不可靠。其中一些显示属性,其名称使它们听起来像子对象,但示例只是将属性设置为null,因此POCO没有任何内容可循。

相反,有时我实际收到的属性没有在示例中显示,所以如果我没有亲手仔细检查JSON,我就不会知道包含它们。

我做的第一件事就是联系API供应商。我问过模式,但他们声称,有些不可思议,没有任何模式。这些例子都是文档。他们没有开发者论坛。

现在,RestSharp合理优雅地处理“比预期更多的数据”情况,因为没有任何事情发生:

  

您的类定义了如何反序列化返回的数据。   而不是遍历数据并搜索匹配的属性   在你的班级,RestSharp使用你的班级作为起点,   循环遍历每个可公开访问的可写属性和   在返回的数据中搜索相应的元素。

(资料来源:https://github.com/restsharp/RestSharp/wiki/Deserialization

那太好了。但我想要的是以编程方式通知我收到POCO无法捕获的数据。然后我至少可以通知操作员需要做更多的开发。

是否有人知道这样做的扩展或添加?我宁愿不写我自己的反序列化器只是为了添加这个功能。

This question看起来与我的相似,但看起来它指的是在这种情况下爆炸的早期版本RestSharp。由于我的一些POCO映射到关系数据库表,这与“灵活”相反,使用dynamics的解决方案根本无法满足我的需求。

0 个答案:

没有答案