2016-11-21 9 views
-2

を変換する必要がJSON文字列です:複雑なJSON文字列を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 
          } 
         } 
        ] 
       } 
      ] 
     } 
    ] 
} 

私は新しいテーブルとして内部ループデータを必要とします。つまり、最初のテーブルには、 "ctin"と "inv"があるはずの2つの行が含まれている必要があります。同様に、2番目のテーブルはinumの詳細を持ち、3番目のテーブルはアイテムの詳細を持つ必要があります。

+0

あなたはこれまでのコードを確認できますか?ここの人々は助けてくれるが、Stack Overflowは無料のコーディングサービスではないことに注意してください。 – halfer

+0

可能な複製http://stackoverflow.com/questions/2246694/how-to-convert-json-object-to-custom-c-sharp-object – thebenman

答えて

0

私はあなたが怒鳴るの手順に従ってくださいお勧め:

  1. は、Visual StudioにごJSON文字列
  2. Go]をコピーし、このメニュー項目を押します。Edit > Paste Special > Paste JSON as classes
  3. は結果をお楽しみください!

適切なクラス:

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; } 
} 

:また、あなたはC#JSONプロパティ名の間にいくつかの貴様を作るために、クラスを超える[DataContract(Name ="...")]とプロパティを超える[DataMember(Name = "...")]のようないくつかの属性を使用することができます。

あなたは名前を簡単にJSONから解析するためのC#クラスを生成することができますjson2charp

Reference

0

...を置き換える必要があります。あなたのデータのために使用することができます:

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; } 
} 

不要なプロパティを削除することができます。 JSON.NETの解析は次のようなものです

var data = JsonConvert.DeserializeObject<RootObject>(jsonString); 
関連する問題