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
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
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;
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
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.
}