Хорошо, поэтому я использую MVC 3, и он отлично подходит для десериализации набора данных JSON в строго типизированный объект, который передается в действие моего контроллера.К сожалению, я не нашел решения для более динамичного случая.
Имеет ли встроенная десериализация и классы Json поддержку "неопределенного" набора свойств?Например, допустим, у меня есть некоторые фиксированные данные, такие как имя и возраст, но я также хочу передать динамически созданный список оценок, в котором пользователь мог бы ввести (или выбрать) фильм и установить значение рейтинга в таблице.
Структура данных модели может выглядеть примерно так:
public class UserRatings
{
public string Name { get; set; }
public int Age { get; set; }
public Dictionary<string,int> Ratings { get; set; }
}
Но при условии, что мой набор данных Json выглядит следующим образом из javascript:
var data = { Name: name, Age: age, Ratings: rating };
Где переменная рейтинга является динамически построеннойобъект, состоящий из имени (или идентификатора) фильма в качестве ключа и рейтинга как числа.Естественно, десериализация этого в действии контроллера не будет успешной, поскольку она не понимает сопоставление Оценок с довольно сложным объектом словаря.Но есть ли общая коллекция Json, которую я мог бы использовать вместо Ratings в качестве промежуточного формата?
Я пытался сделать объект Ratings объектом Json в javascript и просто отправить строку вниз, но я не могу найти«фабрика» или что-то, что может создать структуру Json в C #, которую я могу перебрать, чтобы получить данные.Классы Json
и JsonResult
мне не помогают в этом плане кажется.В основном, как я могу использовать встроенную поддержку Json в MVC, чтобы выполнить собственную десериализацию в некоторый универсальный объект коллекции Json?