我从Swagger公开的模型生成C#类。 目前,我正在使用提供的petstore示例
http://petstore.swagger.wordnik.com/api/api-docs/pet
此网址中的Json包含以下内容:
"category": {
"$ref": "Category"
},
我试图用Json.net
来阅读这篇文章[JsonProperty("$ref")]
public string Ref { get; set; }
我的目的是通过Json.net实现Swagger对象模型,然后用它来生成swagger描述的模型。
它不起作用,保存此属性的对象仍为null
,没有进一步的异常(也尝试设置IsReference = true
)。当没有$ref
时,它会起作用。
干净利落地处理这个问题的最佳做法是什么?
答案 0 :(得分:3)
$ ref不打算直接反序列化为属性值。在这种情况下,它表示对JSON中其他地方定义的对象的引用名为" Category"应该参考。
有关JSON.NET中$ ref的具体处理,请参阅http://james.newtonking.com/json/help/index.html?topic=html/PreserveObjectReferences.htm上的PreserveReferencesHandling部分
答案 1 :(得分:2)
我在Json.NET中遇到了与JSON Schema引用处理完全相同的问题。
这就是我编写自己的JSON Schema解析器,验证器和生成器的原因:NJsonSchema。基于这个库,我实现了正确处理模式引用的Swagger工具:NSwag。
也许其中一个库或工具可以帮助您解决问题......