将 Json 解析为模式生成的一组类

理查德·亨特

我有一个 Json 模式,可以NJsonSchema.CodeGeneration.CSharp用来创建与之对应的类。因此,如果我有符合模式的 json,我应该能够轻松地将其解析为一个对象集合,这些对象的类是从模式生成的类?

那么我该怎么做 - 解析 json 并取出与 json 中的对象(由架构定义)对应的 C# 类对象?

例如 - 如果模式定义了第一个对象定义,它是第二个对象定义的数组,那么我希望能够以这样的方式解析它,即输出是对应于第一个对象的类的实例定义并且它有一个成员,该成员是List与第二个定义对应的类的实例。模式似乎知道执行此操作所需的所有信息,因此它应该是一行 - 我很感激我可以进行长时间解析(例如转换数组中的每个项目)以实现相同的结果。

我认为这将是从模式生成 C# 类的主要目的,那么我缺少的魔法方法是什么?

如果它是一个更可行的解决方案,我也很乐意编写 C# 类并从中生成一个架构。

我已经使用NJsonSchema但很高兴使用任何其他 C# json 模式和代码生成技术来实现相同的目的。

更新:经过讨论,我看到如果NJsonSchema用于从模式生成类TypeScript,这些类版本每个都有一个fromJS方法,听起来像我想要的,但 C# 版本中缺少它们。NJsonSchema如果它提供了解决方案,我很高兴使用除从模式生成类之外的其他方法。

理查德·亨特

我想我找到了答案,这比我预期的要简单得多。它只是使用类似的东西:

var ob=JsonConvert.DeserializeObject<MyNamespace.Anonymous>(jsonString);

...其中MyNamespace是生成的 C# 类的命名空间,MyNamespace.Anonymous是与模式根对应的类(默认名称来自NJsonSchema),以及jsonString要解析的字符串。

我认为该解决方案需要具有模式感知能力,因为它需要了解从模式创建的所有类,但我想它可以通过反映Anonymous它给出类以及它的属性在哪里来“解决”类,反思那些等等。

是我多虑了问题!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将一组数据类序列化为 JSON

来自分类Dev

将一组对象放入 JSON

来自分类Dev

在解析的 json 中选择,将 id 与一组 id 进行比较

来自分类Dev

将一组字典解析为单行熊猫(Python)

来自分类Dev

将 json 解析为类失败

来自分类Dev

将JSON解析为结构

来自分类Java

将DBRef解析为Json

来自分类Java

将XML解析为JSON

来自分类Java

将JSON解析为对象

来自分类Dev

将JSON解析为对象

来自分类Dev

将 JSON 解析为数组

来自分类Dev

将 JSON 解析为对象

来自分类Dev

将Json解析为UITableview

来自分类Dev

将Json解析为String

来自分类Dev

将一个大型的多嵌套json解析为scala case类

来自分类Dev

将JSON处理为类

来自分类Dev

将 JSON 解析为没有 JsonProperty 的类

来自分类Dev

将Json数组解析为C#中的类

来自分类Dev

公开:如何将JSON解析为Entity类

来自分类Java

如何使用Jackson将Color java类解析为JSON?

来自分类Dev

将 Swift 中的 JSON 解析为类数组

来自分类Dev

将JSON解析为Objective C中的预定义类

来自分类Dev

尝试将json解析为类对象失败

来自分类Dev

错误:无法将您的要求解析为一组可安装的软件包

来自分类Java

将JSON转换为YAML。将JSON解析为YAML

来自分类Dev

将多级 JSON 简化为一组唯一记录

来自分类Dev

将JSON列表解析为一个对象

来自分类Dev

将一组JSON对象从Google表格传递到HTML服务

来自分类Dev

如何将具有多个对象的JSON对象转换为一组对象