Я начал использовать Newtonsoft.Json.Schema.JsonSchemaGenerator вместе с различными атрибутами свойств в своем коде C#, чтобы сохранить мой клиентский скрипт СУХИМ. Что я хотел бы сделать, так это создать инициализированный по умолчанию объект на стороне клиента на основе схемы с сервера. Это было бы полезно, скажем, когда пользователь нажимает «Новый Foo», чтобы добавить новую запись в таблицу.
Очевидно, я могу просто запрограммировать его для повторения .Properties и создания нового объекта, что я и делаю в данный момент. Однако я бы предпочел не изобретать велосипеды.
Существуют ли какие-либо JS-библиотеки для работы со схемой JSON, которые будут делать это, среди других отличных вещей, которые мне еще предстоит понять, что мне нужно?
ОБНОВЛЕНИЕ 29.01.2013
Некоторые люди пытались ответить на мой вопрос и ошибались, в результате чего получили негативные отзывы от сообщества SO. Итак, позвольте мне попытаться прояснить ситуацию. Вот вызов:
В клиентском сценарии JS у вас есть объект, представляющий JSON Schema другого объекта. Допустим, это пришло с сервера через JSON.NET и является представлением класса C#.
Теперь в клиентском сценарии JS создайте один из этих объектов на основе схемы JSON. Каждое поле/свойство в объекте должно быть инициализировано по умолчанию в соответствии со схемой, включая все содержащиеся объекты!
БОНУС: привяжите этот новый объект к пользовательскому интерфейсу с помощью MVVM (например, Knockout). Измените некоторые поля в ответ на ввод пользователя.
Отправьте этот новый объект на сервер. Код на стороне сервера добавит его в коллекцию, таблицу базы данных и т.д. (Да, объект будет отправлен в формате JSON с использованием Ajax — мы можем это предположить)
Без дублирования! Единственное место, где класс определен, находится в коде на стороне сервера (в моем примере C#). Сюда входят все метаданные, такие как значения по умолчанию, текст описания, допустимые диапазоны и т. д.