如何从json对象字符串中创建json模式
本文关键字:json 创建 模式 字符串 对象 | 更新日期: 2023-09-27 18:04:25
我正在评估来自NewtonSoft和来自GitHub的NJsonSchema的Json.Net.Schema,我无法弄清楚如何从JSON对象创建JSON模式。我希望它的工作原理完全像这个网站:http://jsonschema.net/#/
我在找什么
string json = @"{""Name"": ""Bill"",""Age"": 51,""IsTall"": true}";
var jsonSchemaRepresentation = GetSchemaFromJsonObject(json);
我希望在jsonSchemaRepresentation变量中有一个有效的JSON模式。有人知道我该怎么做吗?
提前感谢!
当前版本的NJsonSchema支持这个特性:
SampleJsonSchemaGenerator从样例JSON数据生成一个JSON Schema。
var schema = JsonSchema4.FromSampleJson("..."); var schemaJson = schema.ToJson();
…或者创建一个
SampleJsonSchemaGenerator
实例并调用Generate("...")
方法。
实际上您提到的两个库都不支持这样的功能。
如果你打算自己实现它,那么你将不得不解析你的JSON,递归地迭代它,并根据你刚刚迭代的类型添加一个新的模式。
还有一些其他的工具(在其他语言中,如python)可能是一个灵感,这可能会让你开始。
提交给函数的字符串格式不正确。试试这个(将'{'添加到字符串的开头,'}'添加到末尾):
string json = @"{
""Name"": ""Bill"",
""Age"": 51,
""IsTall"": true
}";
var jsonSchemaRepresentation = GetSchemaFromJsonObject(json);