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日

悬赏问题

  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分
  • ¥15 Macbookpro 连接热点正常上网,连接不了Wi-Fi。
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题
  • ¥15 linux驱动,linux应用,多线程
  • ¥20 我要一个分身加定位两个功能的安卓app
  • ¥15 基于FOC驱动器,如何实现卡丁车下坡无阻力的遛坡的效果
  • ¥15 IAR程序莫名变量多重定义