c#newtonsoft解析内部数组

c#newtonsoft解析内部数组,c#,json,c#-4.0,C#,Json,C# 4.0,我将json反序列化为一个模型类,但我想在保存到sqlite之前对boxes数组做一些工作,我一直在循环遍历所有的框并获取值 { "data": [ // single outer array { "id": 8620379, "business_id": 191, "business_name": "yada", "boxes": [ { "box_id": 4

我将json反序列化为一个模型类,但我想在保存到sqlite之前对boxes数组做一些工作,我一直在循环遍历所有的框并获取值

{
"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
  • 为JSON对象创建一个模型。()
  • 公共类框
    {
    公共整数框_id{get;set;}
    公共字符串框_name{get;set;}
    公共对象框组{get;set;}
    }
    公共类数据
    {
    公共int id{get;set;}
    public int business_id{get;set;}
    公共字符串业务名称{get;set;}
    公共列表框{get;set;}
    }
    公共类根对象
    {
    公共列表数据{get;set;}
    }
    
  • 使用Json.NET Json反序列化程序
  • rootobjectobj=JsonConvert.DeserializeObject(“您的json字符串”);
    
    看看这个,也许你会明白要点:是的,我这样做了,但是sqlite不能使用列表框,我需要遍历所有框并将基准id与其他字段一起插入到框表中,因此对于每个基准id,选择所有框,添加基准id并使用List.ToArray()方法执行sql插入操作,将列表转换为数组。然后使用foreach循环迭代集合。。。
    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; }
    }
    
    RootObject obj = JsonConvert.DeserializeObject<RootObject>("your json string");