簡體   English   中英

JSON解析到多個POJO集合

[英]JSON parsing to multiple POJOs collection

我需要使用GSON以某種方式將單個json字符串轉換為特定類型的多個對象。

我有一個json字符串的格式(下面包含2,但可能有100s)

{domain : name1, geo: us} {domain : name2, country : uk}

現在,我想將以上內容轉換為映射到字符串各部分的pojo實例。 假設POJO稱為網站。 然后,我需要將json字符串拆分為2個Website對象。

我正在考慮使用某種標記器拆分json字符串,然后在每個部分上應用一些json邏輯。 我假設我必須在將任何json應用於pojo轉換之前必須執行此操作?

我似乎無法找到一種方法來做到這一點。 請指教。

非常感謝

要將json反序列化為Java pojo,請嘗試json-lib, http://json-lib.sourceforge.net/ 這是一個很好的解決方案。 雖然我會使用flexjson進行序列化。

String json = "{bool:true,integer:1,string:\"json\"}";  
JSONObject jsonObject = JSONObject.fromObject( json );  
BeanA bean = (BeanA) JSONObject.toBean( jsonObject, BeanA.class );  

BeanA是您的POJO。

如果您有多個對象(如示例中所示),請執行以下操作

String json = "{'data':[{'name':'Wallace'},{'name':'Grommit'}]}";
JSONArray jsonArray = (JSONArray) net.sf.json.JSONSerializer.toJSON(json);
for (int i = 0; i < jsonArray.size(); i++) {
   JSONObject jsonObject = (JSONObject) jsonArray.get(i);
   BeanA bean = (BeanA) JSONObject.toBean( jsonObject, BeanA.class );
   //do whatever you want with each object
}

假設您有一個像這樣的課程網站:

class Website {
    String domain;
    String geo;
}

首先將您的字符串固定為有效的json:

String input = "{\"domain\" : \"name1\", \"geo\": \"us\"} {\"domain\" : \"name2\", \"country\" : \"uk\"}";

String json = "[" + input + "]";

然后使用標准gson技術轉換為網站列表:

java.lang.reflect.Type t = new TypeToken<List<Website>>(){}.getType();
List<Website> websites = new Gson().fromJson(json, t);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM