用于从.NET类型获取Json类型的Json.NET api
有了Json.NET,有没有办法找出给定的.NET类型(或者实际上是用于从.NET类型获取Json类型的Json.NET api,.net,serialization,json.net,.net,Serialization,Json.net,有了Json.NET,有没有办法找出给定的.NET类型(或者实际上是MemberInfo)将序列化到的Json类型(数组、对象、字符串、整数等) 上面的文档给出了一个很好的想法,但是Json.NET中是否有我可以使用的公共API?理想情况下,它还将考虑任何会影响序列化的自定义属性(如JsonObjectAttribute等)对于您需要的内容,最合适的解决方案是使用。JSON.NET对它们提供了支持: 其中一个功能正是您所需要的: 生成JSON模式 从现有的.NET类型自动生成JSON模式 从
MemberInfo
)将序列化到的Json类型(数组、对象、字符串、整数等)
上面的文档给出了一个很好的想法,但是Json.NET中是否有我可以使用的公共API?理想情况下,它还将考虑任何会影响序列化的自定义属性(如
JsonObjectAttribute
等)对于您需要的内容,最合适的解决方案是使用。JSON.NET对它们提供了支持:
其中一个功能正是您所需要的:
生成JSON模式
从现有的.NET类型自动生成JSON模式
从它的主页
这里,像这样:
.NET类型
生成JSON模式
关于许可证的说明
当我写下答案时,我没有意识到你需要商业使用许可证,包括在OP@Oskar的评论中
关于实现自定义解决方案的注意事项
执行自己的实现非常复杂,因为生成的JSON依赖于JSON.NET配置,配置可以包括从简单属性到自定义(反)序列化程序以及其他几种配置。因此,“预测”JSON.NET将生成什么JSON真的很难。最简单的方法是:
- 引用示例.NET对象的步骤
- 序列化它
- 并分析生成的JSON
不幸的是,VisualStudio中仍然没有JavaScript语言服务,但是。这将使分析结果Javascript对象变得更加容易。请记住,JSON是一个文字JavaScript对象,可以很容易地实例化,但在JavaScript域中。这个问题没有多大意义,因为JavaScript不是类型化语言。你需要这个到底是为了什么?了解您的用例有助于理解和回答问题。这个问题与JavaScript无关。JSON有一些基本数据类型(),出于各种原因,我想知道一个给定的.NET类型将被序列化为哪种类型(当使用JSON.NET时)。基本上,JSON表示一个JavaScript对象,带有JavaScript属性,这些属性是松散类型的(例如,尽管某物是一个数字,但可以将其用作字符串)。我问的是用例,因为可能有一个不同的解决方案来满足您的需求。JSON有更严格的类型定义,比如你看到我的答案了吗?它对你有用吗?谢谢,这看起来很有希望,但不幸的是它不是免费的(至少用于商业用途),所以我还没有查看它
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
JSchemaGenerator generator = new JSchemaGenerator();
JSchema schema = generator.Generate(typeof(Person));
// {
// "type": "object",
// "properties": {
// "Name": {
// "type": [ "string", "null" ]
// },
// "Age": { "type": "integer" }
// },
// "required": [ "Name", "Age" ]
// }