web-dev-qa-db-fra.com

Convertir une chaîne JSON en objet JSON c #

J'ai cette chaîne stockée dans ma base de données:

str = "{ "context_name": { "lower_bound": "value", "upper_bound": "value", "values": [ "value1", "valueN" ] } }"

Cette chaîne est déjà au format JSON mais je souhaite la convertir en objet JObject ou JSON.

JObject json = new JObject();

J'ai essayé le casting json = (JObject)str; mais cela n'a pas fonctionné, alors comment puis-je le faire?

100
caj

JObject définit la méthode Parse pour ceci:

JObject json = JObject.Parse(str);

Vous voudrez peut-être faire référence à Json.NET documentation .

200
Andrei

si vous ne voulez pas ou n'avez pas besoin d'un objet typé, essayez:

using Newtonsoft.Json;
// ...   
dynamic json  = JsonConvert.DeserializeObject(str);

ou essayez un objet typé essayez:

Foo json  = JsonConvert.DeserializeObject<Foo>(str)
32
Kieran

Cela marche

    string str = "{ 'context_name': { 'lower_bound': 'value', 'pper_bound': 'value', 'values': [ 'value1', 'valueN' ] } }";
    JavaScriptSerializer j = new JavaScriptSerializer();
    object a = j.Deserialize(str, typeof(object));
18
Karthik Ganesan

il existe un moyen intéressant d'atteindre un autre objectif qui est d'avoir une base de classe fortement typée sur json avec des outils très puissants que j'ai utilisés il y a quelques jours pour la première fois pour traduire le résultat de tradedoubler json en classes

C’est un outil simple: copiez votre code source JSON et en quelques secondes vous aurez une classe fortement typée orientée json . De cette manière, vous utiliserez ces classes plus puissantes et plus simples à utiliser.

J'espère que cela peut vous aider

7
makemoney2010

Vous pouvez essayer comme suit:

string output = JsonConvert.SerializeObject(jsonStr);
2
B.Mohamed Riyas

Cela fonctionne pour moi en utilisant JsonConvert

var result = JsonConvert.DeserializeObject<Class>(responseString);
0
HamidKhan

Cela ne fonctionne pas dans le cas du JObject, cela fonctionne pour les données au format JSON simple. J'ai essayé mes données des données au format JSON ci-dessous pour désérialiser dans le type, mais je n'ai pas obtenu la réponse.

Pour ce Json 

{
  "Customer": {
    "id": "Shell",
    "Installations": [
      {
        "id": "Shell.Bangalore",
        "Stations": [
          {
            "id": "Shell.Bangalore.BTM",
            "Pumps": [
              {
                "id": "Shell.Bangalore.BTM.pump1"
              },
              {
                "id": "Shell.Bangalore.BTM.pump2"
              },
              {
                "id": "Shell.Bangalore.BTM.pump3"
              }
            ]
          },
          {
            "id": "Shell.Bangalore.Madiwala",
            "Pumps": [
              {
                "id": "Shell.Bangalore.Madiwala.pump4"
              },
              {
                "id": "Shell.Bangalore.Madiwala.pump5"
              }
            ]
          }
        ]
      }
    ]
  }
}
0
Rahul Shukla