问题标签 [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# - 为什么这个简单的 Json 模式在 NJsonchema 中无效?
我正在测试 NJsonschema,发现以下简单的 Json 模式无效。
原始架构是一个包含很多定义的大架构,其中一个定义(ResourceList)是一个包含很多其他定义的列表,但为了简化问题,我将整个架构简化为下面的 jsonschemastr,其中仅包含 4定义。
问题是如果 schema 定义了 ResourceList 中也包含的类型(ValueSet 或 CodeSystem),则整个 schema 将无效,但如果定义 ValueSet1 则没有问题,为什么?顺便说一句,我的架构是有效的,并使用其他 Json 架构工具进行了检查。
c# - 在具有用于测试的内部设置器的类中设置属性(C#)
我正在使用 NJsonSchema 来验证 JSON 输入。
我有一个小类,它采用ValidationError
对象集合并使用每个验证错误的内容创建更多用户友好的错误消息。
我希望能够为这个类编写单元测试,但是我遇到了一个问题。我的类中的一个消息处理程序负责处理NotInEnumeration
错误,为此它使用ValidationError 中保存Enumeration
的对象内的属性JsonSchema4
并创建格式良好的错误消息。
在为这个特定的处理程序编写测试时,我发现以下内容是非法的:
这是因为 Enumeration 属性有一个内部设置器。
我需要能够设置验证错误的枚举,因为对象需要传递给 ValidationError 的构造函数,然后由我的处理程序稍后读取,如下所示。
我无法使用 moq 模拟 JsonSchema4 对象,因为 moq 不允许模拟非虚拟方法。
本质上,细节并不是很重要,但我想知道是否有任何方法可以设置内部设置器,以便我可以在我的类中测试这个特定的方法。
njsonschema - 如何在我生成的 POCO 类上允许空属性?
使用 NJsonSchema.CodeGeneration,我可以输出 JSON 模式中定义的属性。但是,我注意到在生成的代码中,发生了一些事情:
所有属性都
Required = Newtonsoft...DisallowNull
定义了属性。每个属性都设置为一个类的新实例。
例子:
问题:
如何使生成的代码允许空值?这些不是 JSON 模式中的必需属性,初始化它们没有意义。另一方面,默认情况下初始化集合类很方便,因此可以迭代它们而不会引发异常(这也是集合的当前行为)。
.net - 如何使用 NJsonSchema 从类型构造函数生成 JSON 模式?
我NJsonSchema
用于从C#
类型生成模式。
并尝试像这样生成:
但是生成器使用类属性而不是构造函数来生成模式。如何指定使用构造函数?
c# - 如何使用 NJsonSchema 更改属性的类型
我有一系列通用响应对象,它们返回一个抽象类的属性。NSwag 和 NJsonSchema 使用抽象类生成模式,这会产生问题。具体类很容易通过反射确定,但是,似乎没有一种干净的方法可以让 NJsonSchema 用适当的具体类型替换抽象类型。这样做的正确方法是什么?
NSwag 生成响应对象,AppResponseOfUser
这很好,但是,它说该OriginalRequest
属性是 AppRequestOfUser 并且它是抽象的。我想创建一个将这个 AppRequestOfUser 重新映射到 UserRequest 的 SchemaProcessor。像这样的东西:
不幸的是,NJsonSchema 似乎不是很灵活,并且没有明确的方法来做到这一点。我不想使用鉴别器属性。我想重新映射到适当的具体类型。
c# - 验证 json 以确定 NJsonSchema C# 中的帖子不足
给定一个由 swagger 构建的 json 模式,我想验证我的端点的 json 请求和响应。如果我的 json 数据没有架构中描述的所有非必需字段,则不会返回任何错误。如何修改/扩展行为以确定缺少该字段?
我反汇编了模式和验证器代码,但没有找到一种简单的方法来覆盖模式和验证器的行为。
var wholeSchema = JsonSchema.FromFileAsync("mypath\\myJson.json").GetAwaiter().GetResult();
var specificRequestSchema = wholeSchema.Definitions["specificRequest"];
var errors = specificRequestSchema.Validate(jsonData);
c# - JSchemaPreloadedResolver 有替代方案吗?
我正在尝试从 URL 解析 JSON 模式。我可以JSchemaPreloadedResolver
从Newtonsoft.Json.Schema
库中使用它来执行此操作,但我不能使用这个库。还有其他选择吗?也许在NJsonSchema
或任何其他图书馆?
angular - 扩展点或从 Liquid 模板访问 OpenApiDocument
我们生成的规范扩展(即x-isPrimaryKey
)OpenApiDocument
需要将它们添加ClassDecorators
到我们的 Angular 模型中。
例如,如果是 Pk、Fk 和属性级别权限,我们会进行通信。
我成功地覆盖了File.liquid来自定义生成的模型。
我已经探索了TypeScriptFileTemplateModel但是_document
是private
.
.Liquid
感谢您对文件模板变量的可发现性提供任何帮助。
具体来说,是否有能够从任何模板读取 OAS 3 components
->以扩展模型生成的扩展点?schemas
.Liquid
c# - NJsonSchema 对象验证
我无法验证从一个非常简单的模式开始的 json 字符串。这是我的对象类型:
这是我的测试:
我总是得到错误:
有人能帮我吗?json字符串应该如何组成?提前致谢