C# 将Json解析为模式生成的类集
我有一个Json模式,可以使用C# 将Json解析为模式生成的类集,c#,json,jsonschema,njsonschema,C#,Json,Jsonschema,Njsonschema,我有一个Json模式,可以使用NJsonSchema.CodeGeneration.CSharp创建与之对应的类。因此,如果我有符合模式的json,我应该能够轻松地将其解析为对象集合,这些对象的类是从模式生成的类 那么,我该如何做呢?解析json并获得对应于json中对象的C#类对象(由模式定义) 例如,如果模式定义了第一个对象定义,它是第二个对象定义的数组,然后,我希望能够以这样的方式解析它:输出是与第一个对象定义相对应的类的实例,并且它有一个成员,该成员是与第二个定义相对应的类的实例的列表。
NJsonSchema.CodeGeneration.CSharp
创建与之对应的类。因此,如果我有符合模式的json,我应该能够轻松地将其解析为对象集合,这些对象的类是从模式生成的类
那么,我该如何做呢?解析json并获得对应于json中对象的C#类对象(由模式定义)
例如,如果模式定义了第一个对象定义,它是第二个对象定义的数组,然后,我希望能够以这样的方式解析它:输出是与第一个对象定义相对应的类的实例,并且它有一个成员,该成员是与第二个定义相对应的类的实例的列表。模式似乎知道执行此操作所需的所有信息,因此它应该是一行-我很感激我可以进行长时间解析(例如转换数组中的每个项)以获得相同的结果
我认为这将是从模式生成C#类的主要目的,那么我缺少的神奇方法是什么呢
我也很乐意编写C#类并从中生成模式,如果这是一个更可行的解决方案的话
我曾经使用过NJsonSchema
,但是我很乐意使用任何其他的C#json模式和代码生成技术来达到同样的目的
更新:经过讨论,我发现如果使用NJsonSchema
从模式生成类,那么这些类的TypeScript
版本都有一个fromJS
方法,这听起来像我想要的,但在C版本中没有。如果模式提供了一个解决方案,我很乐意使用非NJsonSchema的东西从模式中生成类。我想我找到了答案,这比我预期的要简单得多。只需使用以下内容:
var ob=JsonConvert.DeserializeObject<MyNamespace.Anonymous>(jsonString);
var ob=JsonConvert.DeserializeObject(jsonString);
…其中,MyNamespace
是生成的C#类的名称空间,MyNamespace.Anonymous
是与架构根对应的类(默认名称来自NJsonSchema
),而jsonString
是要解析的字符串
我认为解决方案需要有模式意识,因为它需要知道从模式中创建的所有类,但我想,通过对它所给出的Anonymous
类的反思,以及它的属性是类的地方,以及对这些类的反思,它就“解决了”了
我想得太多了 你的问题被否决了,因为不清楚你在问什么。我看不出有什么问题。您可能会发现阅读Stackoverflow指南对如何提问很有用:感谢您的澄清,我确实想知道为什么我会得到反对票。。。我会试着用问题的形式重新表述,没问题。我想人们会认为,如果你有一个小数额或声誉,你不需要提醒,但这可以很容易地做到,当你已经走出焦点模式。这看起来像是漫无边际的问题,而不是一个问题=/已经重新编写了一个明确的问题,让我知道这是否有帮助。是的,感谢它看起来很漫无边际,不幸的是,这就是问题的本质-一个句子描述中有很多单词!