Combining the two JSON statements above results in invalid JSON format, preventing the use of JavaScriptSerializer class for direct deserialization into a C# structure. Manual parsing is required to either transform it into valid JSON or perform complete manual parsing.
To ensure compatibility, I recommend transmitting valid JSON data like this:
{list: [
{type:"book", author: "Lian", Publisher: "ABC"},
{type:"Newspaper", author: "Noke"} ]
The best approach may vary based on your specific requirements. You can easily transfer this data using a conventional 'ajax' request. While traditional methods work, utilizing JS libraries offer simpler constructs and cater to cross-browser inconsistencies.
Considering ASP.NET MVC2 usage, jQuery is recommended as Microsoft endorses it as the default JS library for new web projects.
Upon passing the aforementioned JSON to C#, deserializing it requires the following steps:
JavaScriptSerializer serializer = new JavaScriptSerializer();
var result = serialzer.Deserialize<Dictionary<string, object>>(postedJSONData);
In C#, the resulting structure will resemble:
Dictionary<string, object> result =>
{ "list" => object },
object => List<object>,
List<object> => Dictionary<string, object>
{ "type" => "book", "author" => "Lian" } // etc