La combinaison des 2 instructions JSON ci-dessus ne sont pas ensemble JSON valide.Cela étant dit, vous ne pourrez pas utiliser la classe JavaScriptSerializer désérialiser ces données dans C# structure directl y. Au lieu de cela, vous devrez d'abord faire un peu d'analyse manuelle, soit pour le décomposer en JSON valide, soit simplement pour l'analyse manuelle.
Ce que je recommanderais, en réalité, c'est d'envoyer un JSON valide à la place. Vous pouvez accomplir ceci en faisant quelque chose comme ceci:
{list: [
{type:"book" , author: "Lian", Publisher: "ABC"},
{type:"Newspaper", author: "Noke"} ]
Difficile de dire exactement, puisque vous seul connaissez les détails de votre cas d'utilisation. Vous pouvez envoyer ces données via une requête traditionnelle 'ajax'. C'est très facile à faire avec n'importe laquelle des nombreuses bibliothèques JS, mais je recommanderais d'y aller quand même - elles offrent des constructions de plus haut niveau qui sont plus faciles à utiliser (et traitent les idiosyncrasies de plusieurs navigateurs).
Étant donné que vous utilisez ASP.NET MVC2, je recommanderais jQuery. Microsoft soutient maintenant jQuery comme leur bibliothèque JS de choix et la rend même par défaut pour les nouveaux projets Web.
Une fois que vous passez le JSON ci-dessus pour C#, vous pouvez désérialiser en faisant quelque chose comme ceci:
JavaScriptSerializer serializer = new JavaScriptSerializer();
var result = serialzer.Deserialize<Dictionary<string, object>>(postedJSONData);
Votre résultat sera alors une structure qui ressemble à ceci, en C#:
Dictionary<string, object> result =>
{ "list" => object },
object => List<object>,
List<object> => Dictionary<string, object>
{ "type" => "book", "author" => "Lian" } // etc
Vos deux objets un peu similaire, pensez-vous que vous pouvez créer une classe commune qui serait utilisée comme un transfert de données? Vous pouvez ensuite transmettre toutes les données de tous les types dans un tableau et utiliser le type filed pour déterminer comment traiter le côté du serveur de données. – Zachary
Voulez-vous dire créer une classe JS ou une classe C#?Il y a plus de champs différents entre eux. Le script va produire 5 types d'objets différents, qui n'ont que 2 champs identiques. – user469652
Le côté serveur les prendra et produira le document MS Word et retournera le fichier. – user469652