Java中并没有内置的 JSON 解析,需要使用第三方类库
fastJson :阿里巴巴的JSON 库,优势在于解析速度快,解析效率高,可以轻松处理大量的 JSON 数据
JackSon : 社区十分活跃,spring框架默认使用jackson,** Jackson 则更加全面,支持多种数据格式,拥有丰富的序列化和反序列化特性,例如格式化输出、自定义序列化和反序列化等**
Gson : 谷歌开发的JSON 库,内置方法也很丰富
使用样例
String转JOSN
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
#...
String dataStr = JSONObject.parseObject(responseStr).get("data").toString();
String user = JSONObject.parseObject(dataStr).get("principal").toString();
java对象转String
#...
service.addPn(new Gson().toJson(addPortVlan));
String转java对象
#...
BusinessBean resultBean = new Gson().fromJson(res,BusinessBean .class);
String转List<Map>
import com.google.gson.reflect.TypeToken;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.google.gson.Gson;
#...
String jsonString = "[{\"name\":\"John\",\"age\":30,\"city\":\"New York\"},{\"name\":\"Jane\",\"age\":25,\"city\":\"Chicago\"}]";
Gson gson = new Gson();
List<Map<String, Object>> list = gson.fromJson(jsonString, new TypeToken<List<Map<String, Object>>>(){}.getType());
// 输出转换后的LIST<MAP>
for (Map<String, Object> map : list) {
System.out.println(map);
}
依赖引用
#fastJson
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.58</version>
</dependency>
#JackSon
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20180130</version>
</dependency>
#Gson
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.3.1</version>
</dependency>
网友评论