为了账号安全,请及时绑定邮箱和手机立即绑定

使用 GSON 解析 JAVA 中的 JSON

使用 GSON 解析 JAVA 中的 JSON

交互式爱情 2021-09-29 13:44:13
我正在尝试使用具有以下结构的 GSON 解析 JSON 文件:{  "state": 0,  "orders": {    "1": {      "idOrder": "1564",      "price": "7.99",      },    "3": {      "idOrder": "4896",      "price": "9.99",      },    "7": {      "idOrder": "4896",      "price": "10.99",      }  }}我将类设为相同的结构(使用 setter 和 getter)public class myJson {private int error;private Orders orders; }public class Orders {@SerializedName("1")private _1 _1;}public class _1 {private String idOrder;private String price;}主要我是这样使用的:       Gson gson = new Gson();       BufferedReader br = new BufferedReader (new FileReader("base.json"));       Json jsonOffline = gson.fromJson(br, myJson.class);       System.out.println("1 - Orderid: " + jsonOffline.getOrders().get1().getidOrder() );*它可以完美打印:“1 - Orderid:1564”*现在我的问题是JSON 文件中的这些数字 (1,3,7) 是随机的,可能有很多订单。有什么方法可以让我指出一个数字范围,例如 1-1000,在这种情况下,如果结果不为空来做同样的事情?我的意思是,为了避免创建 1000 个像 class _1 这样的类
查看完整描述

2 回答

?
qq_笑_17

TA贡献1818条经验 获得超7个赞

将订单更改为一个Map(HashMap)


private Map<String, Orders> orders;


并Orders:


public class Orders {


    private String idOrder;

    private String price;


}

这应该按预期解析 Json。


这个问题有一个类似的方法,但没有使用示例中的类映射


查看完整回答
反对 回复 2021-09-29
?
互换的青春

TA贡献1797条经验 获得超6个赞

为什么不做这样的事情:


public class MyJson {

    private int error;

    private Map<String, Order> orders;

    // getters and setters

}

随着Order定义这样:


public class Order {

    private String idOrder;

    private String price;

    // getters and setters

}

和main方法显得那么:


public static void main(String[] args) throws FileNotFoundException {

    Gson gson = new Gson();

    BufferedReader br = new BufferedReader(new FileReader("base.json"));

    MyJson jsonOffline = gson.fromJson(br, MyJson.class);

    System.out.println("1 - Orderid: " + jsonOffline.getOrders().get("1").getIdOrder());

}


查看完整回答
反对 回复 2021-09-29
  • 2 回答
  • 0 关注
  • 149 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信