m0_53658864 2021-11-20 20:15 采纳率: 60%
浏览 24
已结题

Gson解析数组对象json文件

各位友友们,我最近刚刚学习Android,碰到一个问题:Gson如何解析数组类型的Json(只用Gson解析)

img

[
{
"shopId":1,
"shopName":"蛋糕房",
"shopPicture":"http://10.113.104.89:8080/order/img/shop/shop1.png",
"foodList":[
    { 
    "foodId":"1",
    "foodName":"招牌丰收硕果12寸",
    },
    {
    "foodId":"2",
    "foodName":"玫瑰花创意蛋糕",
    }        
    ]
}
]

不知道这类Json用gson如何解析,指望各位友友指点,最好能有代码!谢谢大家了!

  • 写回答

1条回答 默认 最新

  • hua-sky 2021-11-22 09:24
    关注

    1:手动在外面包一层 {"list":[]},用于符合Gson解析
    2:json数据格式不对 foodName 后面的逗号 ,要去掉
    json:{"list":[
    {
    "shopId":1,
    "shopName":"蛋糕房",
    "shopPicture":"http://10.113.104.89:8080/order/img/shop/shop1.png",
    "foodList":[
    {
    "foodId":"1",
    "foodName":"招牌丰收硕果12寸"
    },
    {
    "foodId":"2",
    "foodName":"玫瑰花创意蛋糕"
    }
    ]
    }
    ]
    }

    结果如下:

      class ResultBean {
            public ArrayList<Item> list = new ArrayList<Item>();
    
            class Item {
                public int shopId;
                public String shopName;
                public String shopPicture;
    
                public ArrayList<FoodItem> foodList = new ArrayList<FoodItem>();
    
                class FoodItem {
                    public String foodId;
                    public String foodName;
                }
            }
        }
    
     String json="{\"list\":[\n" +
                    "{\n" +
                    "\"shopId\":1,\n" +
                    "\"shopName\":\"蛋糕房\",\n" +
                    "\"shopPicture\":\"http://10.113.104.89:8080/order/img/shop/shop1.png\",\n" +
                    "\"foodList\":[\n" +
                    "    { \n" +
                    "    \"foodId\":\"1\",\n" +
                    "    \"foodName\":\"招牌丰收硕果12寸\"\n" +
                    "    },\n" +
                    "    {\n" +
                    "    \"foodId\":\"2\",\n" +
                    "    \"foodName\":\"玫瑰花创意蛋糕\"\n" +
                    "    }        \n" +
                    "    ]\n" +
                    "}\n" +
                    "]\n" +
                    "}";
            ResultBean result=   new Gson().fromJson(json,ResultBean.class);
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 12月10日
  • 已采纳回答 12月2日
  • 创建了问题 11月20日

悬赏问题

  • ¥20 请问这种量表怎么用spss量化分析(作为中介模型的因变量
  • ¥55 AD844 howland电流源如何驱动大额负载
  • ¥15 C++ /QT 内存权限的判断函数列举
  • ¥15 深度学习GFnet理解问题
  • ¥15 单细胞小提琴堆叠图代码
  • ¥50 升级strust2版本到2.3.15.1后使用ognl3.0.6.jar windows环境中没有问题,但部署到linux环境报错
  • ¥15 vue页面,node封装接口
  • ¥15 求TMS320F280039C工程模板!
  • ¥15 delphi+fastreport实现分组补空打印问题
  • ¥15 使用python把两台mysql数据库服务器数据导出和导入