[英]Parsing JSON in JAVA with GSON
我正在嘗試使用以下結構解析帶有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
將訂單更改為Map
(HashMap)
private Map<String, Orders> orders;
和Orders
:
public class Orders {
private String idOrder;
private String price;
}
這應按預期解析Json。
這個問題有一個類似的方法,但不使用示例中的類映射
為什么不這樣做:
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());
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.