【发布时间】:2018-09-19 20:17:14
【问题描述】:
我正在尝试使用具有以下结构的 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,在这种情况下,如果结果不为 null 也可以这样做?
我的意思是,为了避免创建 1000 个类,例如类 _1
【问题讨论】:
-
您能控制这个 JSON 的创建方式吗?在这种情况下,不要使用整数作为键名。这甚至代表什么?为什么不使用像
orders: [{..}, {..}, {..}]这样的订单数组,其中每个{..}代表单独的{ "idOrder": ???, "price": ???}? -
@Pshemo 嗨,我无权创建 JSON 文件,这是我的问题,因为它不是带有 [] 的数组。