JSON-tekenreeks converteren naar JSON-object c#

Ik heb deze string in mijn database opgeslagen:

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

Deze string heeft al de JSON-indeling, maar ik wil deze converteren naar een JObject of JSON-object.

JObject json = new JObject();

Ik heb de cast json = (JObject)str;geprobeerd, maar het werkte niet, dus hoe kan ik dit doen?


Antwoord 1, autoriteit 100%

JObjectdefinieert hiervoor methode Parse:

JObject json = JObject.Parse(str);

Misschien wil je de Json.NET documentatieraadplegen.


Antwoord 2, autoriteit 25%

als je geen getypt object wilt of nodig hebt, probeer dan:

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

of probeer voor een getypt object probeer:

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

Antwoord 3, autoriteit 6%

Dit werkt

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

Antwoord 4, autoriteit 2%

er is een interessante manier om een ander doel te bereiken, namelijk het hebben van een sterk getypeerde klassenbasis op json met zeer krachtige tools die ik een paar dagen geleden voor het eerst heb gebruikt om het tradedoubler json-resultaat in klassen te vertalen

Is een eenvoudig hulpmiddel: kopieer je json-bron en plak binnen een paar seconden je hebt een sterk getypte klasse json-georiënteerde.
Op deze manier gebruik je deze klassen die krachtiger en eenvoudiger te gebruiken zijn.


Antwoord 5, autoriteit 2%

Je kunt het als volgt proberen:

string output = JsonConvert.SerializeObject(jsonStr);

Antwoord 6

Dit werkt voor mij met JsonConvert

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

Antwoord 7

Als uw JSon-tekenreeks “” dubbele aanhalingstekens heeft in plaats van een enkel aanhalingsteken ‘ en \n heeft als een indicator van een volgende regel, dan moet u deze verwijderen omdat dat geen juiste JSon-tekenreeks is, zoals hieronder weergegeven:

p>

           SomeClass dna = new SomeClass ();
            string response = wc.DownloadString(url);
            string strRemSlash = response.Replace("\"", "\'");
            string strRemNline = strRemSlash.Replace("\n", " ");
            // Time to desrialize it to convert it into an object class.
            dna = JsonConvert.DeserializeObject<SomeClass>(@strRemNline);

Antwoord 8

Dit werkt niet in het geval van de JObject, dit werkt voor de eenvoudige gegevens in json-indeling. Ik heb geprobeerd mijn gegevens van de onderstaande json-indelingsgegevens te deserialiseren in het type, maar kreeg geen antwoord.

Voor deze 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"
              }
            ]
          }
        ]
      }
    ]
  }
}

Antwoord 9

snaarresultaat = wachten op resp.content.readasstringasync ();
Lijst _resp = jsonconvert.desializeObject & lt; lijst & gt; (resultaat);
// lijst _objlist = Nieuwe lijst ((IEnumerable) _resp);

           IList usll = _Resp.Select(a => a.lttsdata).ToList();
            // List<ListViewClass> _objList = new List<ListViewClass>((IEnumerable<ListViewClass>)_Resp);
            //IList usll = _objList.OrderBy(a=> a.ReqID).ToList();
            Lv.ItemsSource = usll;

Other episodes