Комбинация из 2 приведенных выше операторов JSON вместе не является допустимым JSON.При этом вы не сможете использовать класс JavaScriptSerializer для прямой десериализации этих данных в структуру c #.Вместо этого вам сначала нужно будет выполнить какой-то ручной анализ, чтобы разбить его на допустимый JSON или просто полностью выполнить ручной анализ.
Я бы порекомендовал вместо этого отправлять правильный JSON.Вы можете сделать это, выполнив что-то вроде этого:
{list: [
{type:"book" , author: "Lian", Publisher: "ABC"},
{type:"Newspaper", author: "Noke"} ]
Трудно сказать точно, поскольку только вы знаете детали вашего варианта использования.Вы можете отправить эти данные, используя традиционный запрос «ajax».Это очень легко сделать с любой из множества библиотек JS, но я бы рекомендовал в любом случае просто использовать одну из них - они предлагают конструкции более высокого уровня, которые проще в использовании (и решают кросс-браузерные идиосинкразии).
Поскольку вы используете ASP.NET MVC2, я бы порекомендовал jQuery.Microsoft теперь поддерживает jQuery в качестве своей библиотеки JS и даже устанавливает ее по умолчанию для новых веб-проектов.
Как только вы передадите вышеупомянутый JSON в C #, вы можете десериализовать его, выполнив что-то вроде этого:
JavaScriptSerializer serializer = new JavaScriptSerializer();
var result = serialzer.Deserialize<Dictionary<string, object>>(postedJSONData);
Ваш результат будет иметь структуру, похожую на эту, в C #:
Dictionary<string, object> result =>
{ "list" => object },
object => List<object>,
List<object> => Dictionary<string, object>
{ "type" => "book", "author" => "Lian" } // etc