如何将JSON字符串转换为下面给出的格式并返回JSON字符串。
List<Map<String, String>> variables =new ArrayList<>();
我试着寻找这个。我能找到的只是将列表转换为数组然后转换为字符串。但是使用
TypeA[] array = a.toArray(new TypeA[a.size()]);
在这里似乎不可行。
答案 0 :(得分:3)
将List<Map<String,String>>
转换为JSON字符串:
public String listmap_to_json_string(List<Map<String, String>> list)
{
JSONArray json_arr=new JSONArray();
for (Map<String, String> map : list) {
JSONObject json_obj=new JSONObject();
for (Map.Entry<String, String> entry : map.entrySet()) {
String key = entry.getKey();
String value = entry.getValue();
try {
json_obj.put(key,value);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
json_arr.put(json_obj);
}
return json_arr.toString();
}
或者只是使用谷歌gson库:
public String listmap_to_json_string(List<Map<String, String>> list){
// Use toJson method to serialize list to Json
return new GsonBuilder().setPrettyPrinting().create().toJson(list);
}
将JSON字符串转换为List<Map<String,String>>
:
public List<Map<String, String>> json_string_to_listmap(String json){
Gson gson = new Gson();
Type type = new TypeToken<ArrayList<Map<String, String>>>() {}.getType();
// Use fromJson method to deserialize json into an ArrayList of Map
return gson.fromJson(json , type);
}
有关更多信息,请查看此link。
答案 1 :(得分:0)
确实,您应该更新您的问题以提供更多详细信息。同时,根据我在帖子中的理解,我建议你从org.codehaus.jackson.map查看ObjectMapper类。
您可以使用
轻松获得所需类型的JSON转换// string in json format
String json;
ObjectMapper mapper = new ObjectMapper();
mapper.readValue(json, TypeA.class);
答案 2 :(得分:0)
此代码显示如何将json字符串转换为List<Map<String,String>>
:
ObjectMapper objectMapper = new ObjectMapper();
try {
TypeReference < List < Map < String, String >>> typeReference = new TypeReference < List < Map < String, String >>> () {
};
List < Map < String, String >> res = objectMapper.readValue("[{\"size\":\"100x200\"}]", typeReference);
System.out.println("type: " + typeReference.getType());
for (Map < String, String > map: res) {
for (String key: map.keySet()) {
System.out.println(key + " : " + map.get(key));
}
}
} catch (IOException e) {
e.printStackTrace();
}