【问题标题】:Get JSON Schema from dynamic (or actually JSON data) using JSON.Net使用 JSON.Net 从动态(或实际上是 JSON 数据)获取 JSON Schema
【发布时间】:2015-11-19 14:21:19
【问题描述】:

我正在尝试使用 Newtonsoft JSON.Net 从 JSON 实体获取 JSON 架构。

这按预期工作:

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

这很好用。架构的 .Properties 属性显示带有详细信息的“标题”属性。

不过,我的架构来源是一段 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 架构

【问题讨论】:

  • 在第一次调用 Generate 时传递的是真正的动态对象,但在第二次调用中传递的是 JObject。不知道如何修复它,但这可能会帮助您找到修复方法。

标签: c# json dynamic json.net jsonschema


【解决方案1】:

第一个示例中的动态是对匿名类型对象的引用。

第二个例子中的动态是无类型的。

不可能从无类型的对象生成模式。

【讨论】:

  • 解决此请求的想法?如何将 json 转换为与 SchemaGenerator 兼容的匿名类型对象?
猜你喜欢
  • 2018-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多