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 数据库获取信息反馈出错,直接查询了ref字段并且还使用了User文档的_id而不是自己的
  • ¥15 将安全信息用到以下对象时发生以下错误:c:dumpstack.log.tmp 另一个程序正在使用此文件,因此无法访问
  • ¥15 速度位置规划实现精确定位的问题
  • ¥15 代码问题:df = pd.read_excel('c:\User\18343\Desktop\wpsdata.xlxs')路径读不到
  • ¥15 为什么视频算法现在全是动作识别?
  • ¥15 编写一段matlab代码
  • ¥15 用Python做岩石类别鉴定软件
  • ¥15 关于调取、提交更新数据库记录的问题
  • ¥15 之前删了盘从下vs2022遇见这个问题 搞了一整天了
  • ¥15 从Freecad中宏下载的DesignSPHysics,出现如下问题是什么原因导致的(语言-python)