详解C#对XML、JSON等格式的解析

2019-12-30 15:09:52王振洲

JSON字符串2:


 {"success":true,"data":{"name":"张三","moulds":{"stockImport":true,"stockExport":true,"justifyLocation":true,"justifyBin":false,"binRelease":false}}}

在控制台应用程序下的完整代码:


namespace ConsoleApplication1 
{ 
  class Program 
  { 
    static void Main(string[] args) 
    { 
      string json = "{"success":true,"data":{"name":"张三","moulds":{"stockImport":true,"stockExport":true,"justifyLocation":true,"justifyBin":false,"binRelease":false}}}"; 
      Data data = JsonConvertDeserializeObject<Data>(json); 
      ConsoleWriteLine(datadatamouldsbinRelease);//输出False 
    } 
  } 
 
  public class Data 
  { 
    public Boolean success { get; set; } 
    public Data1 data { get; set; } 
  } 
 
  public class Data1 
  { 
    public string name { get; set; } 
    public Data2 moulds { get; set; } 
  } 
 
  public class Data2 
  { 
    public Boolean stockImport { get; set; } 
    public Boolean stockExport { get; set; } 
    public Boolean justifyLocation { get; set; } 
    public Boolean justifyBin { get; set; } 
    public Boolean binRelease { get; set; } 
  } 
} 

JSON字符串3:


{
  "success": true,
  "data": {
    "id": 100001,
    "bin": "JIT-3JS-2K",
    "targetBin": "JIT-3JS-3K",
    "batchs": [
      "B20140101",
      "B20140102"
    ]
  }
}

他的问题主要是不知道batchs这里怎么处理,其实很简单就是一个数组而已。

完整代码如下:


namespace ConsoleApplication1 
{ 
  class Program 
  { 
    static void Main(string[] args) 
    { 
      string json = "{"success": true,"data": {"id": 100001,"bin": "JIT-3JS-2K","targetBin": "JIT-3JS-3K","batchs": ["B20140101","B20140102"]}}"; 
      Data data = JsonConvertDeserializeObject<Data>(json); 
 
      foreach (var item in datadatabatchs) 
      { 
        ConsoleWriteLine(item);//输出:B20140101、B20140102 
      } 
    } 
  } 
 
  public class Data 
  { 
    public Boolean success { get; set; } 
 
    public Data1 data { get; set; } 
  } 
 
  public class Data1 
  { 
    public Int32 id { get; set; } 
 
    public string bin { get; set; } 
 
    public string targetBin { get; set; } 
 
    public string[] batchs { get; set; } 
  } 
} 

除了上述返回类的实体对象做法之外,JSONNET还提供了JObject类,可以取自己指定节点的内容。

比如: