Analizzare una Stringa JSON JSON Oggetto in C#.NET

Ho una Stringa JSON restituito dal mio servizio web SOAP in .NET. È come segue:

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

Ora voglio analizzare questa stringa in un Oggetto JSON. Ho anche letto questo dove hanno utilizzato questa riga di codice:

JObject jsonObj = JObject.Parse(json);

Così posso fare lo stesso con la sostituzione di “json” con il mio nome di stringa. Inoltre ho bisogno di fare riferimento a qualsiasi altra dll, tranne il NewtonSoft.dll ?

BTW, Qui c’è tutto il webservice codice

InformationsquelleAutor Parth Doshi | 2011-11-28



4 Replies
  1. 32

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

    Hai bisogno di Sistema.Web.Estensioni dll e importare lo spazio dei nomi seguente.

    Spazio Dei Nomi: System.Web.Script.La serializzazione

    per ulteriori info MSDN

    • ehi, grazie !! questo è giusto ?? JavaScriptSerializer j = new JavaScriptSerializer.Deserializzare oggetto<>(json); Inoltre , quando ho scritto questa riga di codice in vs 2008, I m sempre errore dicendo che “Il tipo o dello spazio dei nomi JavaScriptSerializer non può essere trovato”, ho aggiunto Newtonsoft.dll come riferimento, non ho bisogno di aggiungere qualcos’altro
    • inoltre come faccio a restituire l’Oggetto? Ho bisogno di modificare il tipo di dati del mio webmethod per Oggetto JSON?
    • aggiornata la mia risposta.. si dnt bisogno newtonsoft.dll! zzz.. cosa si intende restituire l’oggetto??
    • Voglio sapere quando converto la Stringa JSON che ho in un Oggetto JSON con il metodo u hanno detto, quello che sarà il formato dell’oggetto JSON e come vi sembra? Inoltre, ho bisogno di tornare che oggetto JSON in modo che possa essere utilizzato sul mio client Android app
    • Sto usando .net framework 3.5
    • beh, non è possibile inviare un oggetto di c# per il cliente è necessario registrarlo di nuovo e di fine e deserializzare nel codice lato client.
    • atsung.wordpress.com/2008/08/07/javascriptserializer-example mostra come lavorare con questa classe.. si Prega di google si trova di tutto
    • cerchiamo di continuare questa discussione in chat
    • si f ing salvato la mia vita!
    • Non meno che non sia tuo padre.
    • Ho aggiunto il Sistema.Web.Estensioni di riferimento e quindi “risorse di Sistema.Web.Script.La serializzazione;” ma questa linea: var p = new JavaScriptSerializer.Deserializzare oggetto<>(jsonString); …non riuscita con il temuto rosso “chi va là?” a Deserializzare. IOW, in questo modo: var p = new JavaScriptSerializer. richiede nulla da Intellisense; anche se non sembra sapere che JavaScriptSerializer è, che non riconosce come avere qualsiasi metodi disponibili.
    • è necessario creare un’istanza di un oggetto di tipo JavaScriptSerializer come segue nuova JavaScriptSerializer().. il resto ho bisogno di vedere di più del suo codice per aiutare
    • Come si può passare in oggetto <>?
    • creare un’istanza del serializzatore su una sola riga, quindi chiamare la funzione generica sulla riga successiva. Ho avuto lo stesso problema usando la sintassi nella risposta.

  2. 10

    Vedo che questa discussione è vecchia, ma questa è la soluzione che ho usato per lo stesso problema, e sembra richiedere un po ‘ meno codice rispetto agli altri.

    Come @Maloric citato nella sua risposta a questo domanda:

    var jo = JObject.Parse(myJsonString);

    Utilizzare JObject, sono necessari i seguenti nel file di classe

    using Newtonsoft.Json.Linq;
    • Per qualche motivo .NET System.Object e System.Json non sono disponibili in UWP progetti, in modo che questo ha lavorato come un fascino.
  3. 5

    Un’altra scelta oltre a JObject è Sistema.Json.JsonValue Debole per Digitato oggetto JSON.

    Essa ha anche un JsonValue blob = JsonValue.Parse(json); è possibile utilizzare. Il blob sarà più probabile essere di tipo JsonObject che è derivato da JsonValue, ma potrebbe essere JsonArray. Controllare il blob.JsonType se avete bisogno di sapere.

    E per risposta si domanda, SÌ, si può sostituire json con il nome del vostro attuale variabile che contiene la stringa JSON. ;-D

    C’è un System.Json.dll si dovrebbe aggiungere al vostro progetto Riferimenti.

    -Jesse

    • grazie mille per l’aiuto !! 🙂
    • Giusto per chiarire per chi cerca di individuare questo .dll sul loro sistema, sembra che questo è Silverlight dll disponibili .Net 4.5.
  4. 3

    Dal momento che lei ha detto che si sta utilizzando Newtonsoft.dll è possibile convertire una stringa JSON a un oggetto utilizzando i suoi servizi:

    MyClass myClass = JsonConvert.DeserializeObject<MyClass>(your_json_string);
    
    [Serializable]
    public class MyClass
    {
        public string myVar {get; set;}
        etc.
    }

Lascia un commento