首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >用GSON解析JAVA中的JSON

用GSON解析JAVA中的JSON
EN

Stack Overflow用户
提问于 2018-09-20 04:17:14
回答 2查看 69关注 0票数 1

我正在尝试用GSON解析一个JSON文件,它的结构如下:

代码语言:javascript
复制
{
  "state": 0,
  "orders": {
    "1": {
      "idOrder": "1564",
      "price": "7.99",
      },
    "3": {
      "idOrder": "4896",
      "price": "9.99",
      },
    "7": {
      "idOrder": "4896",
      "price": "10.99",
      }
  }
}

我将类设置为相同的结构(使用setter和getter)

代码语言:javascript
复制
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;}

在main中,我是这样使用的:

代码语言:javascript
复制
       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,在这种情况下,如果结果不是null,也可以这样做?

我的意思是,为了避免像 _1这样创建1000个类

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-09-20 04:40:44

为什么不这样做呢:

代码语言:javascript
复制
public class MyJson {
    private int error;
    private Map<String, Order> orders;
    // getters and setters
}

Order的定义如下:

代码语言:javascript
复制
public class Order {
    private String idOrder;
    private String price;
    // getters and setters
}

main方法看起来是这样的:

代码语言:javascript
复制
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());
}
票数 0
EN

Stack Overflow用户

发布于 2018-09-20 04:32:03

将订单更改为Map (HashMap)

private Map<String, Orders> orders;

并将Orders发送到:

代码语言:javascript
复制
public class Orders {

    private String idOrder;
    private String price;

}

这应该像预期的那样解析Json。

This question有一种类似的方法,但在示例中没有使用类映射

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52413612

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档