我使用谷歌的GSON庫,並希望創建一個JSON它看起來像這樣的:{}是空集和地圖分別爲[]和而不是創建地圖或設置使用GSON
{
"teamSet":[],
"classificationMap" : {}
}
公告用雙引號包圍。
我想使用GSON add/addproperty方法創建此Json,而不是使用Gson.toJson()方法將Java類轉換爲JSON。業務用例限制了我創建特定的Java類,因爲JSON結構可能會超時更改。所以我不能使用一類這樣的,因爲這將牢固地扎一個JSON結構的具體類
class Linkage{
private Set<String> teamSet;
private Map<String, String> classificationMap;
// getter, setter methods follow
...
}
當我使用GSON.addproperty(genericObject,類型),它是圍繞附加[]和雙引號{ }。我爲我的數據庫要求使用了couchbase,[]和{}中的雙引號使得couchbase將它們視爲字符串而不是Set/Map。這使得我的地圖,減少無用的意見和馬車:(
請讓我知道,如果可能,而不必與一個具體的Java類拴起來。由於建立這樣一個JSON!
我當前的代碼如下像這樣:
// create types
Type setType = new TypeToken<Set<String>>() {}.getType();
Type mapType = new TypeToken<Map<String, String>>() {}.getType();
Gson GSON = new Gson();
Set<String> teams = new HashSet<String>();
Map<String, String> classificationMap = new HashMap<String, String>();
JsonObject linkageJson = new JsonObject();
linkageJson.addProperty("teamSet", GSON.toJson(teams, setType));
linkageJson.addProperty("classificationMap", GSON.toJson(classificationMap, mapType));
請發佈代碼如何添加設置和地圖。 – 2014-12-05 05:15:12
請上傳/接受我的回答 – 2014-12-05 08:55:49