2016-09-15 26 views
-3

我把我的json放到一个模型类很好,但我想在保存到sqlite之前在box数组上做一些工作,我被困在循环所有框并获取值。c#newtonsoft解析内部阵列

{ 
"data": [ // single outer array 
    { 
     "id": 8620379, 
     "business_id": 191, 
     "business_name": "yada", 
     "boxes": [ 
      { 
       "box_id": 485, 
       "box_name": "5/6", 
       "box_group": null 
      }, 
      { 
       "box_id": 483, 
       "box_name": "1/2", 
       "box_group": null 
      }, 
      { 
       "box_id": 484, 
       "box_name": "3/4", 
       "box_group": null 
      } 
     ] 
    }, 
    { 
     "id": 8636759, 
     "business_id": 257, 
     "business_name": "something else", 
     "boxes": [ 
      { 
       "box_id": 1176, 
       "box_name": "FC", 
       "box_group": null 
      } 
     ] 
    }, // and more boxes 
+0

在此看一看,也许你'会得到的要点:http://stackoverflow.com/questions/6244149/parse-json-string-using-json-net – mok

回答

0
  1. 创建JSON对象的模型。 (http://json2csharp.com/
public class Box 
{ 
    public int box_id { get; set; } 
    public string box_name { get; set; } 
    public object box_group { get; set; } 
} 

public class Datum 
{ 
    public int id { get; set; } 
    public int business_id { get; set; } 
    public string business_name { get; set; } 
    public List<Box> boxes { get; set; } 
} 

public class RootObject 
{ 
    public List<Datum> data { get; set; } 
} 
  • 使用Json.NET JSON解串器,
  • RootObject obj = JsonConvert.DeserializeObject<RootObject>("your json string"); 
    
    +0

    是的,我这样做,但sqlite不能使用列表框,我需要遍历所有框,并将datum id与其他字段一起插入框表中,因此对于每个datum id选择所有框,添加datum id并执行sql insert – user3550256

    +0

    尝试将列表转换为数组列表 .ToArray()方法。然后使用foreach循环迭代集合... –