问题标签 [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 投票
0 回答
330 浏览

c# - 我如何删除 NjsonSchema 中的 SchemaReferenceHandling

我正在使用 NJsonSchema 从 .NET 类型生成 JSON Schema。我正在生成的 json 中获取复杂类型的引用(“$ref”...)。

我不想要引用,而是我想要整个块本身。我已经尝试过下面的代码行,但它似乎不起作用。

我可以通过使用 Newtonsoft.Json 包(见下面的代码)来做到这一点,但 Newtosoft.Json 每小时生成 10 个模式的限制,我不得不切换到 NJsonSchema。

有什么办法可以让我拥有整个块而不是使用 NJsonSchema 引用它。

0 投票
2 回答
479 浏览

c# - NJsonSchema C# - 更改生成的值类型

我正在使用 NJsonSchema CsharpGenerator 10.1.24 并具有以下用于生成 POCO 的架构:

如何让生成的 C# 类具有decimal价格类型而不是默认类型double

public double Price { get; set;}

我尝试使用带有生成器设置JsonSerializerSettingsTransformationMethod属性的自定义静态方法,但没有任何改变。

0 投票
0 回答
638 浏览

c# - NJsonSchema - 如何将自定义属性添加到从 json 模式生成的 c# 类

我有一个json模式如下:

我有以下代码来生成 csharp 类:

这会生成以下类:

现在我想将自定义属性“MyCustomAttribute”添加到“MyClass”的“ArrayTypeProperty”,以便生成的类如下所示:

有人可以帮助我了解我是否可以使用 NJSonSchema 实现这种行为,如果可以,如何实现?

0 投票
1 回答
255 浏览

c# - Parse Json into a schema-generated set of classes

I have a Json schema and can use NJsonSchema.CodeGeneration.CSharp to create classes corresponding to it. So if I have json which conforms to the schema, I should be able to easily parse it into a collection of objects whose classes are the classes generated from the schema?

So how can I do this - parse json and get out C# class objects that correspond to the objects in the json (as define by the schema)?

As an example - if the schema defines a first object definition which is an array of a second object definition, then I would like to be able to parse it in such a way that the output is an instance of the class corresponding to the first object definition and it has a member which is a List of instances of the class corresponding to the second definition. It seems that the schema knows all the information required to do this, so it should be a single line - I appreciate I could do long-hand parsing (eg converting each item in the array) to achieve the same result.

I would think this would be a primary purpose of having C# classes generated from a schema, so what's the magic method I'm missing?

I'm also happy to write C# classes and generate a schema from that if it's a more workable solution.

I've used NJsonSchema but happy to use any other C# json schema and code generation technique that achieves the same end.

UPDATE: After discussion I've seen that if NJsonSchema is used to generate classes from the schema, the TypeScript version of those classes each have a fromJS method which sounds like what I want but they're missing from the C# version. I'm happy to use something other than NJsonSchema to generate classes from schema if it provides a solution.

0 投票
0 回答
39 浏览

typescript - 生成的构造函数数据

我正在使用 NSwag 为后端 API 生成打字稿客户端。最终,它最终生成了一个方法:

这很好,但是问题出在LoginRequest构造函数上。它像这样生成:

因此,它允许LoginRequest在没有任何所需数据的情况下创建它。我查看了生成器的来源,似乎没有更改它的选项。

有没有办法强制构造函数使data参数成为必需的?

请注意,我知道我可以将生成类型设置为使用接口,但据我所知,我会失去一些解析智能(即日期字符串到日期实例)。如果我只能使用接口但以某种方式保留该逻辑,那将是理想的。

0 投票
1 回答
59 浏览

c# - 将根对象添加到 NJsonSchema 模式生成器

我正在使用 NJsonSchema 从 c# 类生成 JasonSchema。我可以创建这个架构:

通过使用:

但我需要将其包装在一个名为模式的对象中:

我如何通过 NJsonSchema c# 模式生成器做到这一点?

0 投票
1 回答
162 浏览

c# - 通过 NJsonSchema for .NET 或 Newtonsoft.Json.Schema 生成 swagger v2 架构

我需要使用一个工具,最好是 NJsonSchema for .NET 从 c# 类生成模式。要求是基于 swagger 版本 2 创建模式。例如,我不能在模式中包含 oneOf、anyOf 等,它们是 OAS3 中的新关键字。我们可以在模式生成器中指定 swagger/OAS 版本吗?如何才能做到这一点?

0 投票
1 回答
24 浏览

njsonschema - 如何验证 Jarray 响应数据模式

我有一个 json 模式验证功能,如下所示

参数 jsonData 是响应的内容,但有时它会是一个数组,如下所示

那么我该如何处理呢?

0 投票
1 回答
403 浏览

c# - 检查 JSON 中的重复属性

我们正在开发一个基于 .Net 核心的 web api 应用程序,为此我们需要验证传入的请求主体,该请求主体的JSON格式是基于 c# 的类型。我们此时正在评估NJsonSchema库以查看它是否会引发重复属性错误。但看起来它不支持此验证。我们还检查了JSON模式验证器,NewtonSoft但似乎它也不支持重复的属性验证。

下面是NJsonSchema我们使用的最小化代码 -

当我们像这样传递一个 JSON 对象时 -

我们需要我们的 JSON 验证器来抛出错误,duplicate property 我们的示例测试如下所示 -

所以我的问题 - 过去有没有人这样做过?或者是否有任何库为重复属性.net core提供JSON验证和/或可以使用NJsonSchemaor来完成NewtonSoft

0 投票
0 回答
107 浏览

c# - C#:在 NJsonSchema 中将模式合并为一个不起作用

我正在使用 NJsonSchema 包来生成一些需要由不同客户端使用的类的模式,但由于某种原因,将所有模式合并到一个完整的模式中并没有按预期工作。下面是为所有类型创建一个单一模式的方法:

我只是使用方法将该模式转换为 JSON ToJson。根据我的理解,架构本身看起来不错,有所有定义等。但是当我将它复制粘贴到这里时,它给了我一个包含所有类的所有属性的类,它只是一个带有字段和属性的大类,并不多像我的代码中的类。

也尝试从 VS 做如下所述:

这会给我很多类的名字,比如AnonymousAnonymous32等等。一些奇怪的名字。

我的方法有问题还是问题出在客户端?


编辑:我不得不更改客户端的方法JsonSchema.FromSampleJson(text)JsonSchema.FromFileAsync(path).Result改为使用,但现在我得到一个空结果:

根本没有生成类...