使用JSON.Net从动态(或实际上是JSON数据)中获取JSON模式



我正试图使用Newtonsoft JSON.Net.从JSON实体获取JSON模式

如预期:

dynamic customObject = new
{
    Title = "Test"
};
var schemaGenerator = new JsonSchemaGenerator { };
var schema = schemaGenerator.Generate(customObject.GetType());

这很好用。架构的.Properties属性显示"Title"属性及其详细信息。

然而,我的模式源是一段JSON数据。所以我首先将它序列化为dynamic:

string json = JsonConvert.SerializeObject(customObject);
dynamic customObjectAfterSerialize = JsonConvert.DeserializeObject<dynamic>(json);
JsonSchemaGenerator schemaGenerator = new JsonSchemaGenerator { };
JsonSchema schemaAfterSerialize = schemaGenerator.Generate(customObjectAfterSerialize.GetType());

但是现在JSON模式对象的.Properties属性是null

如何从任意JSON数据中获取JSON模式

第一个例子中的

dynamic是对匿名类型对象的引用。

第二个例子中的dynamic是非类型化的。

无法从非类型化对象生成架构。

最新更新