本文正在参加「Java主题月 - Java Debug笔记活动」,详情查看 活动链接
问题:Java里面怎么将hashmap转换成JSON 对象
ava里面怎么将hashmap转换成JSON 对象,并且再将JSON对象转换为JSON 字符串
回答一
你可以使用:
new JSONObject(map);
注意:这只适用于Map<String, String>!
你可以从它的文档中获取其他方法
stleary.github.io/JSON-java/i…
回答二
你可以使用Jackson将Map转换成JSON,像下面那样:
Map<String,Object> map = new HashMap<>();
//你可以转换任何对象
String[] value1 = new String[] { "value11", "value12", "value13" };
String[] value2 = new String[] { "value21", "value22", "value23" };
map.put("key1", value1);
map.put("key2", value2);
map.put("key3","string1");
map.put("key4","string2");
String json = new ObjectMapper().writeValueAsString(map);
System.out.println(json);
Jackson的Maven依赖 :
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.5.3</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.5.3</version>
<scope>compile</scope>
</dependency>
如果你使用JSONObject库,你可以转换map到JSON ,像下面那样
Map<String, Object> map = new HashMap<>();
// 转换有list作为value的map
String[] value1 = new String[] { "value11", "value12", "value13" };
String[] value2 = new String[] { "value21", "value22", "value23" };
map.put("key1", value1);
map.put("key2", value2);
JSONObject json = new JSONObject(map);
System.out.println(json);
Maven Dependencies for JSONObject :
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20140107</version>
</dependency>
希望可以帮到你吧。编程快乐
回答三
使用json的样例
Map<String, Object> data = new HashMap<String, Object>();
data.put( "name", "Mars" );
data.put( "age", 32 );
data.put( "city", "NY" );
JSONObject json = new JSONObject();
json.putAll( data );
System.out.printf( "JSON: %s", json.toString(2) );
输出::
JSON: {
"age": 32,
"name": "Mars",
"city": "NY"
}
你也可以尝试使用谷歌的GSON。谷歌的GSON是能够转换Java对象为JSON表示的最好的库。 code.google.com/p/google-gs…
文章翻译自Stack Overflow:stackoverflow.com/questions/1…