2017-05-01 1 views
-6

Ich muss nach JSON mit newtonsoft.net mit C# analysieren. Ich habe viele Codes ausprobiert, aber sie funktionieren nicht.parsen JSON mit json.net C#

{ 
    "tableId": 1, 
    "userId": 12, 
    "branchId": 2, 
    "cart": [{ 
     "itemId": 12, 
     "itemname": "Paneer butter masala", 
     "qty": "1", 
     "price": "2500", 
     "customise": [{ 
      "name": "fruit boul", 
      "id": 1, 
      "price": "25" 
     }, { 
      "name": "fruit boul", 
      "id": 1, 
      "price": "25" 
     }], 
     "comment": "", 
     "linetotal": "2550" 
    }, { 
     "itemId": 34, 
     "itemname": "Paneer butter masala", 
     "qty": "1", 
     "price": "2500", 
     "customise": [{}], 
     "comment": "", 
     "linetotal": "2500" 
    }], 
    "total": "5050" 
} 

Jede Antwort wird sehr geschätzt.

+5

* ich viele Codes versucht, aber sie funktionieren nicht. * Was haben Sie versucht? Und was funktioniert * mit diesen "Codes" nicht? Fügen Sie Ihren vielversprechendsten Versuch ein und sagen Sie uns, was nicht funktioniert. Wird es nicht kompilieren? Gibt es Ihnen zur Laufzeit Fehler? Läuft es, tut aber etwas anderes als Sie erwartet haben? Wonach wolltest du das überhaupt analysieren? –

+0

Ich versuchte mit JObject.Parse(), JToken, JArray, etc. Ich möchte jedes Element im Warenkorb, Elemente in anpassen Array –

+2

Sie müssen ** zeigen Sie uns Ihren Versuch, was bedeutet, dass Ihre C# -Code in Ihrem Beitrag. Im Moment ist es unklar, was Sie fragen. –

Antwort

1

Schritt 1. Nehmen Sie einige Modelle (oder Plain Old C# Klassen, wenn Sie mögen) Ihre json in (erzeugt durch http://json2csharp.com/) deserialisiert - dies ist in der Regel ein bisschen leichter mit dem gerade nach oben json zu arbeiten:

public class Customise 
{ 
    public string name { get; set; } 
    public int id { get; set; } 
    public string price { get; set; } 
} 

public class Cart 
{ 
    public int itemId { get; set; } 
    public string itemname { get; set; } 
    public string qty { get; set; } 
    public string price { get; set; } 
    public List<Customise> customise { get; set; } 
    public string comment { get; set; } 
    public string linetotal { get; set; } 
} 

public class TableData 
{ 
    public int tableId { get; set; } 
    public int userId { get; set; } 
    public int branchId { get; set; } 
    public List<Cart> cart { get; set; } 
    public string total { get; set; } 
} 

Schritt 2. Fügen Sie Json.NET Abhängigkeit zu einem Projekt über NuGet Paket-Manager

Schritt 3. Ihren JSON-String als solche Deserialize eine Objektinstanz mit allen Werten auf (ich Ihr Stammobjekt TableData genannt, kann dies offensichtlich geändert werden):

var data = JsonConvert.DeserializeObject<TableData>(jsonString); 

Nun wurden alle JSON-Daten innerhalb des Objekts data gesetzt.

+0

Danke nbokmans. Es funktioniert wie erwartet –

0

Sie Newtonsoft.Json.JsonConvert.DeserializeObject hier verwenden sollte, ist eine Probe

var jsonFilePath = path to your file; 

var myObject = Newtonsoft.Json.JsonConvert.DeserializeObject(System.IO.File.ReadAllText(jsonFile)); 

Wie automatisch auf die richtige Klassen erstellen json Daten mit?

Wenn Sie die richtige Klasse wollen nicht manuell erstellen Sie Ihre JSON-Daten verwenden, können Sie alle Ihre json Text auswählen können und die in der Visual Studio folgendermaßen vor:

Bearbeiten> Inhalte einfügen> einfügen als Json als Klassen

enter image description here