如何从json对象字符串C#创建json模式

时间:2016-08-27 19:32:01

标签: c# json json.net jsonschema

我正在评估来自NewtonSoft的Json.Net.Schema和来自GitHub的NJsonSchema,我无法弄清楚如何从JSON对象创建JSON模式。我希望它的工作方式与此网站完全相同:http://jsonschema.net/#/

我在寻找什么

string json = @"{""Name"": ""Bill"",""Age"": 51,""IsTall"": true}";

var jsonSchemaRepresentation = GetSchemaFromJsonObject(json);

我希望jsonSchemaRepresentation变量中有一个有效的JSON模式。有谁知道我怎么能做到这一点?

提前致谢!

3 个答案:

答案 0 :(得分:1)

实际上你提到的两个库 都不支持这样的功能

如果你自己实现它,那么你将不得不递归地解析你的JSON,iterate over itadd a new schema,具体取决于你刚刚迭代的类型。

还有一些其他工具(在其他语言中,如python)可能是一个灵感,this可能会让你开始。

答案 1 :(得分:1)

NJsonSchema supports this feature的当前版本:

  

SampleJsonSchemaGenerator从示例JSON数据生成JSON模式。

var schema = JsonSchema4.FromSampleJson("...");
var schemaJson = schema.ToJson();
     

...或创建一个SampleJsonSchemaGenerator实例并调用Generate("...")方法。

答案 2 :(得分:0)

您提交给该函数的字符串格式不正确。试试这个(添加' {'到字符串的开头,'}'到最后):

string json = @"{
""Name"": ""Bill"",
""Age"": 51,
""IsTall"": true
}";

var jsonSchemaRepresentation = GetSchemaFromJsonObject(json);