NJsonSchema: схемы JSON с вложенными массивами генерируют некорректные типы C#
Я хотел бы использовать 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 ответ
Решение