2010-02-02 4 views
1

J'ai réussi à créer un code qui sérialise un objet javascript complexe et le publie sur une page ASP.NET. Je peux obtenir la chaîne JSON en utilisant Request.Form et le résultat ressemble à ceci (je l'ai ajouté indentation pour une meilleure lisibilité):Désérialise un objet JSON complexe à l'aide d'ASP.NET?

{ 
    "gasterPerStolPerVecka": { 
     "name": "gasterPerStolPerVecka", 
     "keyValue_id": "2", 
     "set_id": "1", 
     "containerElement": "#gasterPerStolPerVecka", 
     "keyValueComponents": [ 
      { 
       "name": "gasterPerStolPerVecka_guestsPerWeek", 
       "value": "200" 
      }, 
      { 
       "name": "gasterPerStolPerVecka_numberOfChairs", 
       "value": "100" 
      } 
     ], 
     "keyValueUnitText": "gäster/stol per vecka", 
     "keyValueCalculationMethod": "divide", 
     "isValid": true, 
     "result": 2 
    }, 
    "tillgangligaStolstimmarPerVecka": { 
     "name": "tillgangligaStolstimmarPerVecka", 
     "keyValue_id": "1", 
     "set_id": "1", 
     "containerElement": "#tillgangligaStolstimmarPerVecka", 
     "keyValueComponents": [ 
      { 
       "name": "tillgangligaStolstimmarPerVecka_openHoursPerWeek", 
       "value": "35" 
      }, 
      { 
       "name": "tillgangligaStolstimmarPerVecka_numberOfChairs", 
       "value": "100" 
      } 
     ], 
     "keyValueUnitText": "stolstimmar/vecka", 
     "keyValueCalculationMethod": "multiply", 
     "isValid": true, 
     "result": 3500 
    }, 
    "planeradIntaktPerTillgangligStolOchVecka": { 
     "name": "planeradIntaktPerTillgangligStolOchVecka", 
     "keyValue_id": "", 
     "set_id": "", 
     "containerElement": "#planeradIntaktPerTillgangligStolOchVecka", 
     "keyValueComponents": [ 
      { 
       "name": "planeradIntaktPerTillgangligStolOchVecka_weeklyRevenue", 
       "value": "" 
      }, 
      { 
       "name": "planeradIntaktPerTillgangligStolOchVecka_numberOfChairs", 
       "value": "100" 
      } 
     ], 
     "keyValueUnitText": "kr", 
     "keyValueCalculationMethod": "divide", 
     "isValid": false, 
     "result": null, 
     "errorText": "Ofullständigt underlag för beräkning." 
    }, 
    "planeradIntaktPerTillgangligaStolstimmar": { 
     "name": "planeradIntaktPerTillgangligaStolstimmar", 
     "keyValue_id": "", 
     "set_id": "", 
     "containerElement": "#planeradIntaktPerTillgangligaStolstimmar", 
     "keyValueComponents": [ 
      { 
       "name": "planeradIntaktPerTillgangligaStolstimmar_weeklyRevenue", 
       "value": "" 
      }, 
      { 
       "name": "planeradIntaktPerTillgangligaStolstimmar_openHoursPerWeek", 
       "value": "35" 
      }, 
      { 
       "name": "planeradIntaktPerTillgangligaStolstimmar_numberOfChairs", 
       "value": "100" 
      } 
     ], 
     "keyValueUnitText": "kr", 
     "keyValueCalculationMethod": "divide_divide", 
     "isValid": false, 
     "result": null, 
     "errorText": "Ofullständigt underlag för beräkning." 
    } 
} 

Maintenant, j'essaie de désérialiser ce sur le côté serveur, mais il est difficile. Je continue à obtenir l'erreur:

[NullReferenceException: objet de référence non définie à une instance d'un objet.]

Je ne sais pas où commencer à chercher des erreurs?

Merci d'avance! /Thomas Kahn

+1

pouvez-vous nous montrer votre code de désérialisation? – Matt

Répondre

0

Vous devez utiliser une bibliothèque de désérialisation pour ASP.NET. Voir http://json.org/ pour les bibliothèques qui sont disponibles ou peut-être y en a-t-il une intégrée dans ASP.NET. De toute façon, le code ressemblera:

String s = getAppropriateFormField(); 
Object o = JSONLibraryPackage.parse(s); 

où vous devez évidemment remplir les blancs de la façon dont vous obtenez le champ de formulaire, puis ce paquet et la méthode fait l'analyse syntaxique.

1

utilisez stringify à la place de sérialisation

Questions connexes