2016-11-21 4 views
-2

Hier ist der JSON-String, der konvertiert werden muss:Wie Deserialisieren komplexer JSON-Zeichenfolge in Dataset in C#?

{ 
    "b2b": [ 
     { 
      "ctin": "37ABCDE9552F3Z4", 
      "inv": [ 
       { 
        "inum": "S008400", 
        "idt": "09-04-2016", 
        "val": 861786.91, 
        "pos": "6", 
        "rchrg": "No", 
        "pro_ass": "Y", 
        "itms": [ 
         { 
          "num": 1, 
          "itm_det": { 
           "ty": "S", 
           "hsn_sc": "H724", 
           "txval": 5589.87, 
           "irt": 0.0, 
           "iamt": 0.0, 
           "crt": 87.92, 
           "camt": 5.7947562568E8, 
           "srt": 86.56, 
           "samt": 50.74 
          } 
         }, 
         { 
          "num": 2, 
          "itm_det": { 
           "ty": "S", 
           "hsn_sc": "H863", 
           "txval": 2509.27, 
           "irt": 0.0, 
           "iamt": 0.0, 
           "crt": 12.99, 
           "camt": 26144.48, 
           "srt": 31.81, 
           "samt": 276654.5 
          } 
         } 
        ] 
       } 
      ] 
     }, 
     { 
      "ctin": "76ABCDE2148F9Z9", 
      "inv": [ 
       { 
        "chksum": "AflJufPlFStqKBZ", 
        "inum": "S008400", 
        "idt": "24-11-2016", 
        "val": 729248.16, 
        "pos": "6", 
        "rchrg": "No", 
        "pro_ass": "Y", 
        "itms": [ 
         { 
          "num": 1, 
          "itm_det": { 
           "ty": "S", 
           "hsn_sc": "S8590", 
           "txval": 8196.88, 
           "irt": 0.0, 
           "iamt": 0.0, 
           "crt": 42.44, 
           "camt": 202.86, 
           "srt": 40.99, 
           "samt": 0.02 
          } 
         }, 
         { 
          "num": 2, 
          "itm_det": { 
           "ty": "S", 
           "hsn_sc": "H357", 
           "txval": 6760.14, 
           "irt": 0.0, 
           "iamt": 0.0, 
           "crt": 23.89, 
           "camt": 6.8214986738E8, 
           "srt": 60.95, 
           "samt": 0.03 
          } 
         } 
        ] 
       } 
      ] 
     } 
    ] 
} 

Ich brauche die innere Schleife Daten als neue Tabelle. dh die erste Tabelle sollte 2 Zeilen enthalten, die "ctin" und "inv" enthalten sollten. In ähnlicher Weise sollte die zweite Tabelle die Inum-Details und die dritte Tabelle die Item-Details enthalten.

+0

Können wir sehen, welchen Code Sie bisher haben? Denken Sie daran, dass, während die Leute hier helfen wollen, Stack Overflow kein kostenloser Programmierservice ist. – halfer

+0

Mögliches Duplikat http://stackoverflow.com/questions/2246694/how-to-convert-json-object-to-custom-c-sharp-object – thebenman

Antwort

0

Ich schlage vor, Sie die unten folgen:

  1. Kopieren Sie Ihre JSON Zeichenfolge
  2. Zum Visual Studio und diesen Menüpunkt drücken: Edit > Paste Special > Paste JSON as classes
  3. genießen Sie das Ergebnis!

Geeignete Klassen:

public class Rootobject 
{ 
    public B2b[] b2b { get; set; } 
} 

public class B2b 
{ 
    public string ctin { get; set; } 
    public Inv[] inv { get; set; } 
} 

public class Inv 
{ 
    public string inum { get; set; } 
    public string idt { get; set; } 
    public float val { get; set; } 
    public string pos { get; set; } 
    public string rchrg { get; set; } 
    public string pro_ass { get; set; } 
    public Itm[] itms { get; set; } 
    public string chksum { get; set; } 
} 

public class Itm 
{ 
    public int num { get; set; } 
    public Itm_Det itm_det { get; set; } 
} 

public class Itm_Det 
{ 
    public string ty { get; set; } 
    public string hsn_sc { get; set; } 
    public float txval { get; set; } 
    public float irt { get; set; } 
    public float iamt { get; set; } 
    public float crt { get; set; } 
    public float camt { get; set; } 
    public float srt { get; set; } 
    public float samt { get; set; } 
} 

Hinweis: Sie können auch einige Attribute wie [DataContract(Name ="...")] über die Klassen und [DataMember(Name = "...")] über die Eigenschaften verwenden, um einige differents zwischen C# und JSON Eigenschaftsnamen zu machen.

sollten Sie ... mit einem

Namen ersetzen

Reference

0

Mit json2charp Sie einfach C# -Klassen für das Parsen von JSON erzeugen kann. Für Ihre Daten können Sie verwenden:

public class ItmDet 
{ 
    public string ty { get; set; } 
    public string hsn_sc { get; set; } 
    public double txval { get; set; } 
    public double irt { get; set; } 
    public double iamt { get; set; } 
    public double crt { get; set; } 
    public double camt { get; set; } 
    public double srt { get; set; } 
    public double samt { get; set; } 
} 

public class Itm 
{ 
    public int num { get; set; } 
    public ItmDet itm_det { get; set; } 
} 

public class Inv 
{ 
    public string inum { get; set; } 
    public string idt { get; set; } 
    public double val { get; set; } 
    public string pos { get; set; } 
    public string rchrg { get; set; } 
    public string pro_ass { get; set; } 
    public List<Itm> itms { get; set; } 
    public string chksum { get; set; } 
} 

public class B2b 
{ 
    public string ctin { get; set; } 
    public List<Inv> inv { get; set; } 
} 

public class RootObject 
{ 
    public List<B2b> b2b { get; set; } 
} 

Sie können die Eigenschaften entfernen, die Sie nicht benötigen. Das Analysieren mit JSON.NET ist wie

var data = JsonConvert.DeserializeObject<RootObject>(jsonString); 
Verwandte Themen