问题标签 [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# - 如何确保 NJsonSchema 仅包含必填字段?
我正在使用NJsonSchema v2.6 为以下类生成 JSON Schema:
生成的 JSON Schema:
尽管 MessageDate 属性未标记为 DataMember,但它始终包含在模式中,并且生成的模式包含两个模式路径,而它应该只包含一个,似乎解析器没有扁平化属性。
更新
这解决了创建多个模式路径的问题
GitHub问题:https ://github.com/NJsonSchema/NJsonSchema/issues/53
c# - 如何在使用 NJsonSchema 生成架构时将 AllowAdditionalProperties 设置为 true
我们现在要使用NJsonSchema来检查 Json 文件中的必填字段,并且我们允许用户添加一些额外的字段以供本地使用。因此,它必须允许 Json 文件中的其他属性。
通过使用 NJsonSchma,有附加属性的设置,但是当我们使用 FromType 生成模式时,然后设置选项 AllowAdditionalProperties,它将仅适用于顶层,
例如:
现在,它允许 Top 的附加属性,但不允许 Item。IE
我们甚至尝试构建一个迭代函数来设置属性字典中的值,但它仍然无法改变行为:
我们现在唯一能做的就是下载源代码,并将 AllowAdditionalProperties 的 getter 更改为始终返回 true。我们当然知道这不是正确的方式,但是我们目前找不到任何替代方法,如果有的话,我们希望以后使用正确的方式。
似乎这只是生成模式的默认设置,但我们找不到这样的选项(可能我们错过了),有谁知道我们如何在生成模式时更改此设置?
c# - 使用 NJsonSchema 从 C# 中的示例 JSON 数据生成 JSON Schema
我希望这是我不正确,但我正在尝试从内存中的 JSON 字符串生成 JSON 模式。
我正在使用 GitHub 上的 NJsonSchema。 https://github.com/NJsonSchema/NJsonSchema/
当我执行上面的代码时,我在 jsonSchema 中得到以下值,这是不正确的。
为了以防万一,我暂时为它创建了一个 GitHub 错误。 https://github.com/NJsonSchema/NJsonSchema/issues/180
c# - 指导 NJsonSchema 将自定义字典视为常规字典
假设我有这些配置类:
我做这样的事情:
NJsonSchemaDictionary<string, string>
以我期望的方式处理,但 Files 属性ConfigDictionary<string>
并没有像我期望的那样被视为字典。
ConfigDictionary<T>
无论如何我可以让NJsonSchema对待Dictionary<string, T>
吗?
njsonschema - 试图从 NJsonSchema ValidationErrors 中检索 LineNumber 信息?
我需要做一些 json 模式验证并使用 NJsonSchema,因为我无法获得 Json.Net Schema 的许可证。有没有办法获取 ValidationErrors 的 LineNumber 信息?
看起来唯一可用的属性是
jsonschema - 从 JsonSchema4 创建 json 对象
我有一个具有属性及其定义的复杂 Json Schema,我知道根属性,使用 jsonSchema4,我如何为根属性创建包含其嵌套依赖项的完整对象。
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"这样的方式。
问候,康斯坦丁。
c# - 使用异构数组从 json 模式生成 C# 类
我在项目中有一个 json 模式,并希望添加构建步骤以从中生成类,这些模式中包含一个对象和字符串数组,简化示例如下:
我正在使用NJsonSchema从此模式生成 C# 代码。结果,我得到以下输出:
结果我有这个奇怪的Anonymous
类,如果我尝试反序列化下面的 json 文件,我会收到一个错误:string
无法转换为Anonymous
. 要反序列化,我使用以下生成的方法:
是否可以将代码生成调整为结果是一个集合,object
并在其中获得具有正确类型的反序列化对象?
c# - 如何在字典值上强制正则表达式模式(njsonschema)
使用njsonschema,我想生成一个模式,以确保写入字典的所有值都将根据正则表达式模式进行验证。
考虑以下类:
我希望 njsonschema 生成的模式部分是:
Instaed,njsonschema 会生成如下内容:
有没有办法实现这一点?
提前致谢!
validation - 如何根据 Draft v4 使用 JSON.NET Schema 或 NJSONSchema 验证 JSON Schema?
我一直在研究JSON.NET Schema和NJsonSchema。两者似乎都没有任何属性/方法来识别 JSON Schema 是否有效并且符合草案 v4。
是否只有一个例外会识别模式是否有效,即使它有效,我将如何检查它是否与 v4 草案兼容?