Подтвердить что ты не робот

Сгенерировать классы С# из схемы JSON

Я создаю веб-службу С# WCF, которая возвращает много данных в формате JSON. Клиент - это приложение для iPad, которое в настоящее время разрабатывается другой командой. Поэтому я работаю над спецификациями, без данных примера.
В настоящее время строка JSON создается инфраструктурой .net, моя веб-служба возвращает объект С#, содержащий всю информацию, которая затем сериализуется каркасом с использованием DataContracts.

Моя проблема в том, что спецификации связи содержат только файлы JSON Schema (на основе http://json-schema.org/). Чтобы облегчить разработку, я хотел бы сгенерировать соответствующие классы в С#, но поскольку файлы содержат довольно много информации, и есть десяток файлов, я действительно не хочу создавать эти классы вручную.

Итак, я ищу инструмент, который позволил бы мне:

  • Чтобы сгенерировать классы С# из схемы JSON.
  • Преобразование схемы JSON в файл XSD. Тогда было бы легко создать классы, так как есть много инструментов для генерации классов из XSD.

Я нашел много инструментов для проверки строки JSON против схемы JSON или для создания классов из строки JSON, но ничего, что мне кажется, не помогает.
Существует JSON.NET, но, похоже, это библиотека, а не инструмент, и я не нашел никакой информации о создании классов с ней.

Итак, если кто-нибудь знает инструменты или имеет представление о том, как я могу сгенерировать эти классы (я попробовал инструмент, который создавал классы на Java, но я не мог заставить его работать).

4b9b3361

Ответ 1

Посмотрите эту библиотеку на nuget. NJsonSchema.CodeGeneration можно использовать для генерации кода С# или TypeScript из схемы JSON:

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

Теперь переменная файла содержит код С# для всех классов, определенных в схеме JSON.

Мне нужен класс, сгенерированный сегодня, но не смог найти какой-либо сайт, который мог бы конвертировать json-схему в классы С# онлайн, поэтому использовал вышеупомянутую библиотеку и быстро написал что-то быстро http://json2csharp.rohitl.com/ надеюсь, что это поможет.

Ответ 2

Вы можете использовать библиотеку NJsonSchema, чтобы прочитать схему JSON или сгенерировать ее из типа и сгенерировать из нее класс С#.

Если вам нужен графический интерфейс для этих задач, вы можете попробовать графический интерфейс NSwagStudio из NSwag инструментов для этого... ( он также основан на NJsonSchema)

Ответ 3

Итак, я ищу инструмент, который позволил бы мне:    Чтобы сгенерировать классы С# из схемы JSON...

Я не использовал его сам, поэтому я не могу слишком много комментировать об этом, но он выглядит как инструмент json-schema-to-poco" подходит для того, что вам нужно.

За его github readme:

Преобразует файлы схемы JSON в простые старые объекты CLR в С#. Полезно для работы как часть процесса автоматической сборки.

Ответ 4

У меня была потребность в этом сегодня, и я не видел твердых ответов на ваш вопрос, поэтому я взбесил это. Это не идеально, но это хорошая отправная точка для создания.

https://gist.github.com/rushfrisby/c8f58f346548bf31e045

Ответ 5

Посмотрите на Справка Json.NET Существует пространство имен Json.Schema, которое может быть полезно.

http://james.newtonking.com/projects/json/help/

Json.NET - Краткое руководство и документация по API Пространство имен Newtonsoft.Json.Schema Пространства имен ► Newtonsoft.Json.Schema

Страница проекта: http://json.codeplex.com/

Ответ 6

Вот генератор онлайн-классов, который я использовал в прошлом, чтобы генерировать классы С# из набора образцов данных JSON:

http://json2csharp.com/