问题标签 [njsonschema]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 根据集合属性名为集合中的对象生成C#类名
我正在尝试使用 NJsonSchema 生成 C# 类,但它正在为数组“anonymous_”中的对象命名类。
例如,这个 json 模式片段
生成此 C# 属性和类
想知道是否有一种方法可以强制 NJsonSchema 根据集合名称的单数化版本来命名集合中的对象(例如,在这种情况下,我希望将anonymous
类命名为类似的名称,Identifier
因为该类描述了名为 的集合中的对象Identifiers
)。我已尝试为此使用自定义 TypeNameGenerator,但未向该Generate
函数提供集合的名称。
c# - 如何强制不存在的属性为空?
如果我有如下架构:
我正在使用以下代码生成一组 C# 类:
并且,使用生成的类,执行以下操作:
然后反序列化完成而没有错误,但生成的对象o包含对object1和object2的引用,尽管object2的所有成员都是空的。
我需要的是object2要么不存在于反序列化对象中,要么设置为 null。有没有办法做到这一点,无论是在模式本身还是在这个管道中涉及的各种进程之一?
c# - JSON 模式到 C#
我正在寻找一个类或工具来将 JSON 模式转换为 C# 类作为预构建步骤。
我找到了几个“自制”解决方案(jsonschema.net、NJsonSchema、...),但更愿意使用一些与公司/项目相关的成熟/官方代码。我知道 Newtonsoft.json.Schema 包只能反过来(C# Class -> JSON)
我惊讶地发现 Visual Studio 能够使用“编辑 -> 选择性粘贴 -> 将 JSON 粘贴为类”开箱即用地执行此操作。此功能背后的代码/类/可执行文件/dll 在预构建步骤中是否可以通过编程方式访问?
c# - NJsonSchema:带有嵌套数组的 JSON 模式生成不正确的 C# 类型
我想使用 NJsonSchema 生成 C# 类。问题是对于嵌套数组,类型最终看起来像这样:
System.Collections.ObjectModel.ObservableCollection<System.Tuple<System.Linq.Enumerable+WhereSelectEnumerableIterator2[NJsonSchema.JsonSchema4,System.String]>>
我用于生成类的测试代码如下所示:
我有两个 JSON 模式文件,还有定义文件(Def1.json):
还有一个使用定义文件的单独模式:
我是否错误地使用了图书馆?
c# - 如何在 NJsonSchema c# 中使用 json 模式验证 json
作为合同测试的一部分,我必须针对文件中存在的 json-schema 验证从 rest-endpoint 获得的 json 响应。我正在使用 NJsonSchema 并且无法执行此操作。
文件中的 Json-schema 如下所示
我必须验证的 Json 如下所示
任何人都可以对如何使用 NJsonSchema 或 Manatee.Json 使用 jsonschema 验证 json 进行一些说明(带有示例)。
json - 使用 NJsonSchema 在单元测试中解析 JSON $ref
我已将我的 JSON 模式拆分为多个文件,并根据需要以标准方式 ( "$ref": http://rootpath/otherfile.json#/definitions/link
) 引用它们。
JSON 文件是项目中的嵌入资源。这些rootpath
变化取决于它的部署位置。但是在生产中一切正常(发出请求,获得 JSON 响应作为模式,当针对模式 NJsonSchema 验证响应时,内部获取参考模式并提取完成验证所需的内容)
但是,当涉及到测试时,情况就不同了。响应很好,并且第一个模式被删除了。这rootpath
是这样的,一切都是相对的,http://testapi/
但实际上并不存在。因此,当 NJsonSchema 尝试获取参考架构时,它会查找类似 的http://testapi/otherfile.json#/definitions/link
内容,这显然失败了。
通过阅读本文,我想我想使用重载来获取JsonSchema4
允许我指定 JsonReferenceResolver 的对象,然后我可以在生产中使用默认值并注入我自己的进行测试,以便它在$ref
我的某个地方查找 s控制并且将存在。但我看不到任何关于此的文档或示例。
示例模式:
示例响应:
验证码(C#):
njsonschema - 如何控制 NJsonSchema 的小数输出
我有一个像这样的 C# 对象:
我创建了一个像这样的 json 模式:
如何防止属性“格式”:“十进制”在结果模式中输出?
编辑添加:不修改类 Foo - 我无权访问它。
c# - NJsonSchema:如果我知道我的模式中的一个字段在运行时只能有几个有限值,我可以将它添加到我的验证逻辑中吗?
以他们的 GitHub为例,如果我在运行时知道名字只能是“Bob”或“Bill”,我可以对此进行验证吗?
c# - 验证 JsonSchema 本身。它是正确的 JSON 模式吗?
注意!我不想针对 JSON Schema 验证 JSON!
我有 2 个 JSON 文件:
1. JSON Schema 文件:
2. JSON 文件:
如果这两个文件可以用作 JSON Schema,我想验证它们。
例如:
我努力了:
1)JSchema schema = JSchema.Parse(stringSchema); // It parses without any exception, and Valid property is null
不走运,我如何验证 JSON Schema 本身?
c# - NJsonSchema - C# 代码生成器不输出命名空间
我有一系列我试图输出到 POCO 的 JSON 模式文件,并NJsonSchema.CodeGeneration.CSharp
为此目的加载了库。在为模型指定命名空间时,看起来命名空间实际上并没有被输出到生成的代码文件中。正在编写 POCO,但对象周围没有命名空间声明。我希望namespace MyApp.DataModels
每个文件中都有一个。我究竟做错了什么?
以下是相关的代码: