使用 GSON 解析 JAVA 中的 JSON

我正在尝试使用具有以下结构的 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 这样的类


交互式爱情
浏览 150回答 2
2回答

qq_笑_17

将订单更改为一个Map(HashMap)private Map<String, Orders> orders;并Orders:public class Orders {&nbsp; &nbsp; private String idOrder;&nbsp; &nbsp; private String price;}这应该按预期解析 Json。这个问题有一个类似的方法,但没有使用示例中的类映射

互换的青春

为什么不做这样的事情:public class MyJson {&nbsp; &nbsp; private int error;&nbsp; &nbsp; private Map<String, Order> orders;&nbsp; &nbsp; // getters and setters}随着Order定义这样:public class Order {&nbsp; &nbsp; private String idOrder;&nbsp; &nbsp; private String price;&nbsp; &nbsp; // getters and setters}和main方法显得那么:public static void main(String[] args) throws FileNotFoundException {&nbsp; &nbsp; Gson gson = new Gson();&nbsp; &nbsp; BufferedReader br = new BufferedReader(new FileReader("base.json"));&nbsp; &nbsp; MyJson jsonOffline = gson.fromJson(br, MyJson.class);&nbsp; &nbsp; System.out.println("1 - Orderid: " + jsonOffline.getOrders().get("1").getIdOrder());}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java