2014-10-28 39 views
0

我開始使用json,需要一些幫助來解決這個問題。Gson名稱數組,幷包含一個新屬性

我有一個POJO

public class HiReceiptsObj{ 
     private string warehouse_id; 
     private String owner_id; 
private String receipt; 

.....// all with Getters and setters 

} 

我調用Java方法,其中我加載收據的ArrayList像這樣

List<HiReceiptsObj> receipts = new ArrayList<HiReceiptsObj>(); 

,然後我用GSON到ArrayList轉換爲JSON

String receiptsJson = new Gson().toJson(receipts); 
      response.setContentType("application/json"); 
      response.setCharacterEncoding("UTF-8"); 
      response.getWriter().write(receiptsJson); 

This will output

[{"warehouse_id":"US01","owner_id":"NP ","receipt":"INV"}, 
{"warehouse_id":"US01","owner_id":"NP ","receipt":"082212-3047 "}, 
{"warehouse_id":"US01","owner_id":"NP ","receipt":"INVADJUST"}] 

我需要這種輸出的

{ 
    "total_pages": 10, 
    "rows": [ 
    {"warehouse_id":"US01","owner_id":"NP ","receipt":"INV"}, 
    {"warehouse_id":"US01","owner_id":"NP ","receipt":"082212-3047 "}, 
    {"warehouse_id":"US01","owner_id":"NP ","receipt":"INVADJUST"} 
    ] 

} 

我已閱讀有關本的其他職位,但他們對我來說太先進了,可有人請幫助?

感謝

回答

0

1)你也應該有你的目的一個holder類:

public class ReceiptHolder { 
    @SerializedName("total_pages") 
    private int totalPages; 

    private List<HiReceiptsObj> rows; 

    // TODO: add getter/setters 
} 

2)創建receiptHolder實例並填寫:

List<HiReceiptsObj> receipts = new ArrayList<HiReceiptsObj>(); 
ReceiptHolder receiptHolder = new ReceiptHolder(); 
receiptHolder.setRows(receipts); 
receiptHolder.setTotalPages(receipts.size()); 

3)序列化receiptHolder

String receiptsJson = new Gson().toJson(receiptHolder); 

輸出爲你想要的東西:

{ 
    "total_pages": 10, 
    "rows": [ 
    { 
     "warehouse_id": "US01", 
     "owner_id": "NP ", 
     "receipt": "INV" 
    }, 
    { 
     "warehouse_id": "US01", 
     "owner_id": "NP ", 
     "receipt": "082212-3047 " 
    }, 
    { 
     "warehouse_id": "US01", 
     "owner_id": "NP ", 
     "receipt": "INVADJUST" 
    } 
    ] 
} 
+0

你先生是棒極了.. – user2797021 2014-10-28 16:07:49

相關問題