2015-04-03 26 views
3

我有我要存儲用戶的名稱和位置的類NameAndPostion。我創建了NameAndPosition的對象ArrayListGson - 放入並獲取組合對象的ArrayList

ArrayList<NameAndPosition> LocSenders = new ArrayList<NameAndPosition>(); 

現在我已經用GSON庫

Gson gson = new Gson(); 
String json = gson.toJson(LocSenders); 

我這樣做轉換,以節省LocSenders共享縣轉變成LocSenders JSON字符串。
現在我想檢索'LocSenders'中使用Gson JSON轉換存儲的所有對象。

我想用Gson庫做這個工作。
我沒有得到Gsons方法gson.fromJson(json, classOfT)。那麼如何正確地做到這一點?

NameAndPostion.java提前

public class NameAndPosition { 

    private String name = ""; 
    private LatLng position = null; 


    public String getName() { 
     return name; 
    } 
    public void setName(String name) { 
     this.name = name; 
    } 
    public LatLng getPosition() { 
     return position; 
    } 
    public void setPosition(LatLng position) { 
     this.position = position; 
    } 

} 

感謝。

+0

你想要NameAndPosition的對象? – Pratik 2015-04-03 04:14:56

+0

是的。我想要將所有存儲的對象檢索到LocSenders ArraList中。 – 2015-04-03 04:18:42

回答

3

下面是使用gson轉換爲JSON和從JSON轉換爲JSON的示例。

//Convert to JSON 
System.out.println(gson.toJson(employee)); 

//Convert to java objects 
System.out.println(gson.fromJson("{'id':1,'firstName':'Lokesh','lastName':'Gupta','roles':['ADMIN','MANAGER'],'birthDate':'17/06/2014'}" 
          , Employee.class)); 

反序列化集合

List<Employee> yourClassList = new Gson().fromJson(jsonArray, Employee.class); 

對於泛型集合。

Type listType = new TypeToken<ArrayList<YourClass>>() { 
        }.getType(); 
List<YourClass> yourClassList = new Gson().fromJson(jsonArray, listType); 

你也可以參考下面的鏈接。

Google Gson - deserialize list<class> object? (generic type)

+0

如何在ArrayList中再次存儲所有對象? – 2015-04-03 04:19:43

+0

它默認從java.lang.reflect.Type中導入類Type。再次編輯提示我進行類型轉換?我應該導入哪個類型的類? – 2015-04-03 04:33:00

+0

謝謝。得到了解決 LocSenders = gson.fromJson(JSON, \t \t \t \t \t \t新TypeToken >(){}的getType()); – 2015-04-03 04:36:31