首先遍歷你的HashMap來獲取鍵和值並將其存儲在列表中。創建兩個包含Key和List的類,其他包含List的Category。在類對象中設置值,創建一個List並將此類的兩個對象添加到列表中,並將此列表序列化爲JSON。
我對onvert對象轉換成JSON字符串使用Gson Library。
這裏是你想要的代碼。
DATACLASS:
public class DataClass {
private List<String> data;
private String StaticData;
//your getter and setter method.
}
CategoryClass:
public class CategoryClass {
private List<String> Categories;
//your getter and setter method
}
識別TestClass:
public static void main(String[] args) {
try{
Map<String, String> map = new HashMap<String, String>();
map.put("a", "1");
map.put("b", "2");
map.put("c", "3");
List<Object> obj = new ArrayList<Object>();
List<String> keys = new ArrayList<String>();
List<String> values = new ArrayList<String>();
for(Entry<String, String> myMap : map.entrySet()){
keys.add(myMap.getKey());
values.add(myMap.getValue());
}
DataClass dataObj = new DataClass();
dataObj.setData(keys);
dataObj.setStaticData("HELLO");
obj.add(dataObj);
CategoryClass catObj = new CategoryClass();
catObj.setCategories(values);
obj.add(catObj);
Gson gson = new Gson();
String jsonStr = gson.toJson(obj);
System.out.println(jsonStr);
}
catch(Exception ex){
ex.printStackTrace();
}
}
輸出:
[{"data":["b","c","a"],"StaticData":"HELLO"},{"Categories":["2","3","1"]}]
編輯:
如果你需要保持在MAP插入的順序不是使用LinkedHashMap
所以鍵和值的是公共秩序是相同地圖插件。
請修復您的預期輸出。這是目前無效的JSON。沒有我知道的JSON庫能夠自動分析'MultiMap'並生成所需的格式。你需要自己序列化它。 –
對不起..只是修復它 – user2093576
不要使用JSON的「字符串構建」。使用JSON庫。 – user2864740