1、Gson
Gson是Google發(fā)布的一個(gè)開源Java類庫,能夠很方便的在Java對(duì)象和JSON字符串之間進(jìn)行序列化和反序列化。
<!-- Gson maven項(xiàng)目依賴 -->
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.2.2</version>
</dependency>
代碼實(shí)現(xiàn)
//Json字符串轉(zhuǎn)Json對(duì)象
JsonObject departmentJsonObj = new JsonParser().parse(allDepartmentStr).getAsJsonObject();
String dept = departmentJsonObj .get("department").toString();
//JsonObject轉(zhuǎn)Json數(shù)組
JsonArray deptListArray = departmentIdListJsonObj.getAsJsonArray("department");
注意,當(dāng)所解析的Json字符串中某個(gè)參數(shù)中是帶雙引號(hào)的,還需要去“”,如:
{
"name": "username",
"age": 20,
"admin": true
}
如果我想取name,做如下寫,如果不加replaceAll(),name取出的是“username”,會(huì)有雙引號(hào)的。而使用方法2的FastJson就不需要去雙引號(hào)。
JsonObject userJsonObj = new JsonParser().parse(userJsonStr).getAsJsonObject();
String userName = userJsonObj .get("name").toString().replaceAll("\"", "");
2、FastJson
Fastjson是一個(gè)Java語言編寫的JSON處理器,由阿里巴巴公司開發(fā)。
1、遵循http://json.org標(biāo)準(zhǔn),為其官方網(wǎng)站收錄的參考實(shí)現(xiàn)之一。
2、功能qiang打,支持JDK的各種類型,包括基本的JavaBean、Collection、Map、Date、Enum、泛型。
3、無依賴,不需要例外額外的jar,能夠直接跑在JDK上。
4、開源,使用Apache License 2.0協(xié)議開源。http://code.alibabatech.com/wiki/display/FastJSON/Home
5、具有超高的性能,java世界里沒有其他的json庫能夠和fastjson可相比了。
<!-- FastJson在maven項(xiàng)目依賴 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.27</version>
</dependency>
代碼實(shí)現(xiàn)
//Json字符串轉(zhuǎn)Json對(duì)象
JSONObject accessTokenJsonObject = JSONObject.parseObject(accessTokenJsonStr);
accessToken = accessTokenJsonObject.getString("access_token");