问题标签 [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.

0 投票
2 回答
2794 浏览

c# - 如何确保 NJsonSchema 仅包含必填字段?

我正在使用NJsonSchema v2.6 为以下类生成 JSON Schema:

生成的 JSON Schema:

尽管 MessageDate 属性未标记为 DataMember,但它始终包含在模式中,并且生成的模式包含两个模式路径,而它应该只包含一个,似乎解析器没有扁平化属性。

更新

这解决了创建多个模式路径的问题

GitHub问题:https ://github.com/NJsonSchema/NJsonSchema/issues/53

0 投票
2 回答
1685 浏览

c# - 如何在使用 NJsonSchema 生成架构时将 AllowAdditionalProperties 设置为 true

我们现在要使用NJsonSchema来检查 Json 文件中的必填字段,并且我们允许用户添加一些额外的字段以供本地使用。因此,它必须允许 Json 文件中的其他属性。

通过使用 NJsonSchma,有附加属性的设置,但是当我们使用 FromType 生成模式时,然后设置选项 AllowAdditionalProperties,它将仅适用于顶层,

例如:

现在,它允许 Top 的附加属性,但不允许 Item。IE

我们甚至尝试构建一个迭代函数来设置属性字典中的值,但它仍然无法改变行为:

我们现在唯一能做的就是下载源代码,并将 AllowAdditionalProperties 的 getter 更改为始终返回 true。我们当然知道这不是正确的方式,但是我们目前找不到任何替代方法,如果有的话,我们希望以后使用正确的方式。

似乎这只是生成模式的默认设置,但我们找不到这样的选项(可能我们错过了),有谁知道我们如何在生成模式时更改此设置?

0 投票
2 回答
5164 浏览

c# - 使用 NJsonSchema 从 C# 中的示例 JSON 数据生成 JSON Schema

我希望这是我不正确,但我正在尝试从内存中的 JSON 字符串生成 JSON 模式。

我正在使用 GitHub 上的 NJsonSchema。 https://github.com/NJsonSchema/NJsonSchema/

当我执行上面的代码时,我在 jsonSchema 中得到以下值,这是不正确的。

为了以防万一,我暂时为它创建了一个 GitHub 错误。 https://github.com/NJsonSchema/NJsonSchema/issues/180

0 投票
1 回答
308 浏览

c# - 指导 NJsonSchema 将自定义字典视为常规字典

假设我有这些配置类:

我做这样的事情:

NJsonSchemaDictionary<string, string>以我期望的方式处理,但 Files 属性ConfigDictionary<string>并没有像我期望的那样被视为字典。

ConfigDictionary<T>无论如何我可以让NJsonSchema对待Dictionary<string, T>吗?

0 投票
1 回答
166 浏览

njsonschema - 试图从 NJsonSchema ValidationErrors 中检索 LineNumber 信息?

我需要做一些 json 模式验证并使用 NJsonSchema,因为我无法获得 Json.Net Schema 的许可证。有没有办法获取 ValidationErrors 的 LineNumber 信息?

看起来唯一可用的属性是

0 投票
2 回答
262 浏览

jsonschema - 从 JsonSchema4 创建 json 对象

我有一个具有属性及其定义的复杂 Json Schema,我知道根属性,使用 jsonSchema4,我如何为根属性创建包含其嵌套依赖项的完整对象。

0 投票
1 回答
1026 浏览

c# - 将 Json 反序列化为 NJsonSchema 生成的对象,其中枚举包含空格

需要你的帮助。

所以,我有 json 模式,我使用了 NJsonSchema.CodeGeneration工具生成 .cs 模型。我能够使用它成功地将 json 反序列化为对象,直到输入 json 包含带有空格的枚举值。

这就是我所说的

在架构中,我有一个属性,例如:

在生成的 .cs 模型中,我有一个相应的枚举:

这里有两个输入示例:Json 1:

json 2:

然后我只是在需要时反序列化它:

它以 Json 2 的方式工作,但它无法识别带有空格的枚举值,并出现如下错误:

“将值“带空格”转换为类型“com.company.model.Some_prop1”时出错。路径“prop1”,第 7 行,位置 24。”

所以这是我的主要问题:有没有办法在不改变模式中枚举格式的情况下处理这种情况?

额外的小问题:在调查时我又遇到了一个问题 - 如果我要使用 some.ToJson() 之类的序列化,我的枚举将以"prop1": 0 之类的方式生成,使用 int< 并且因为 json 被用作用户友好改变事物的方式,我需要像"prop1": "with space"这样的方式。

问候,康斯坦丁。

0 投票
1 回答
3168 浏览

c# - 使用异构数组从 json 模式生成 C# 类

我在项目中有一个 json 模式,并希望添加构建步骤以从中生成类,这些模式中包含一个对象和字符串数组,简化示例如下:

我正在使用NJsonSchema从此模式生成 C# 代码。结果,我得到以下输出:

结果我有这个奇怪的Anonymous类,如果我尝试反序列化下面的 json 文件,我会收到一个错误:string无法转换为Anonymous. 要反序列化,我使用以下生成的方法:

是否可以将代码生成调整为结果是一个集合,object并在其中获得具有正确类型的反序列化对象?

0 投票
1 回答
157 浏览

c# - 如何在字典值上强制正则表达式模式(njsonschema)

使用njsonschema,我想生成一个模式,以确保写入字典的所有值都将根据正则表达式模式进行验证。

考虑以下类:

我希望 njsonschema 生成的模式部分是:

Instaed,njsonschema 会生成如下内容:

有没有办法实现这一点?

提前致谢!

0 投票
1 回答
771 浏览

validation - 如何根据 Draft v4 使用 JSON.NET Schema 或 NJSONSchema 验证 JSON Schema?

我一直在研究JSON.NET SchemaNJsonSchema。两者似乎都没有任何属性/方法来识别 JSON Schema 是否有效并且符合草案 v4。

是否只有一个例外会识别模式是否有效,即使它有效,我将如何检查它是否与 v4 草案兼容?