web-dev-qa-db-fra.com

Analyser la chaîne JSON en objet JSON en C # .NET

J'ai une chaîne JSON retournée par mon service Web SOAP dans .NET. Elle est la suivante:

{
 "checkrecord":
   [
     {
      "rollno":"abc2",
      "percentage":40,
      "attended":12,
      "missed":34
     }
  ],
 "Table1":[]
}

Maintenant, je veux analyser cette chaîne en un objet JSON. J'ai également lu this où ils ont utilisé cette ligne de code:

JObject jsonObj = JObject.Parse(json);

Puis-je faire de même en remplaçant "json" par mon nom de chaîne. Dois-je également faire référence à toute autre DLL, à l'exception de NewtonSoft.dll?

BTW, voici le webservice complet code

26
Parth Doshi

utilisez new JavaScriptSerializer().Deserialize<object>(jsonString)

Vous avez besoin de la DLL System.Web.Extensions et importez l'espace de noms suivant.

Espace de noms: System.Web.Script.Serialization

pour plus d'informations MSDN

34
Baz1nga

Je vois que cette question est très ancienne, mais c'est la solution que j'ai utilisée pour le même problème, et elle semble nécessiter un peu moins de code que les autres.

Comme @Maloric l'a mentionné dans sa réponse à la question this :

var jo = JObject.Parse(myJsonString);

Pour utiliser JObject, vous avez besoin des éléments suivants dans votre fichier de classe

using Newtonsoft.Json.Linq;
11
demonicdaron

Un autre choix en plus de JObject est System.Json.JsonValue pour un objet JSON de type faible.

Il a également une JsonValue blob = JsonValue.Parse(json); que vous pouvez utiliser. Le blob sera très probablement de type JsonObject qui est dérivé de JsonValue, mais pourrait être JsonArray. Vérifier la blob.JsonType si vous avez besoin de savoir.

Et pour répondre à votre question, OUI, vous pouvez remplacer json par le nom de votre variable réelle qui contient la chaîne JSON. ;-RÉ

Il y a un System.Json.dll que vous devez ajouter à vos références de projet.

-Jesse

5
Jesse Chisholm

Puisque vous avez mentionné que vous utilisez Newtonsoft.dll, vous pouvez convertir une chaîne JSON en objet en utilisant ses fonctionnalités:

MyClass myClass = JsonConvert.DeserializeObject<MyClass>(your_json_string);

[Serializable]
public class MyClass
{
    public string myVar {get; set;}
    etc.
}
3
azakgaim