首页 文章

NJsonSchema:具有嵌套数组的JSON模式生成不正确的C#类型

提问于
浏览
1

我想使用NJsonSchema生成C#类 . 问题是对于嵌套数组,类型最终看起来像这样:

System.Collections.ObjectModel.ObservableCollection<System.Tuple<System.Linq.Enumerable+WhereSelectEnumerableIterator2[NJsonSchema.JsonSchema4,System.String]>>

我生成类的测试代码如下所示:

var schemaAsync = NJsonSchema.JsonSchema4.FromFileAsync(
    @"<myPath>/MyFile.json");

var schema = schemaAsync.Result;

var generator = new NJsonSchema.CodeGeneration.CSharp.CSharpGenerator(schema);
var file = generator.GenerateFile();

System.IO.File.WriteAllText(
    @"<myPath>/SomeClass.cs",
    file);

我有两个JSON模式文件,有定义文件(Def1.json):

{
    "$schema": "http://json-schema.org/draft-04/schema#",

    "definitions": {
        "InnerList": {
            "description": "Only ever has 2 items",
            "type": "array",
            "items": [ 
                {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 100,
                    "default": 0
                },
                {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 100,
                    "default": 0
                }
           ],
          "additionalItems": false
        },
        "OuterList": {
            "type": "array",
            "items": {
                "$ref": "#/definitions/InnerList"
            }
        },
    }
}

以及使用定义文件的单独模式:

{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "title": "MySchema",
    "type": "object",
    "required": [ "OuterList" ],
    "properties": {
        "OuterList": { "$ref": "Def1.json#/definitions/OuterList" }
    },
    "additionalProperties": false
}

我错误地使用了库吗?

1 回答

  • 1

    此问题已在最新版本中修复 .

相关问题