fastjson 是阿里公司出品的json软件
直接在pom。xml文件加入依赖
- fastjson中JSONObject类似于一个Map
- fastjson中JSONArray类似于一个List
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.18</version>
</dependency>
package Java.Learn; import java.util.List; import java.util.Map; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.TypeReference; public class TestJasn { public void testJson(){ String json = "{\"a\":[\"a1\",\"a2\",\"a1\"]," + " \"cb\":{\"a\":1}," + " \"d\":[\"a\",{\"a\":[1,20]},{\"a\":2},\"\"]," + " \"e\":\"b\"}"; System.out.println("--"+json); JSONObject j = JSON.parseObject(json);//解析成一个JSONObject JSONArray a = j.getJSONArray("a");//将a的value解析成一个JSONArray System.out.println(a);//输出["a1","a2","a1"] JSONObject cb = j.getJSONObject("cb");//解析成一个JSONObject Integer cba = cb.getInteger("a");//获取cb下a的值 System.out.println(cba);//输出1 } public void testJsonObject(){ String json = "{\"retCode\":200,\"retMsg\":\"success.\"}"; RetInfo info = JSON.parseObject(json, RetInfo.class);//解析成一个RetInfo对象 System.out.println(info.getRetMsg());//输出success. String json1 = "[{\"retCode\":200,\"retMsg\":\"success.\"},{\"retCode\":201,\"retMsg\":\"fail.\"}]"; List<RetInfo> infos = JSON.parseArray(json1, RetInfo.class);//解析成一个List<RetInfo>对象 System.out.println(infos.get(1).getRetCode());//输出201 /** * 如果不想写类似于RetInfo这种对象文件(也称为pojo),那就可以用TypeReference来解决 * 这种方式在测试中用的普遍一些 */ List<Map<String, Object>> infos1 = JSON.parseObject(json1, new TypeReference<List<Map<String, Object>>>(){}); System.out.println(infos1.get(1).get("retMsg"));//输出fail. String json2 = "{\"retCode\":200,\"retMsg\":\"success.\",\"data\":{\"name\":\"zhangsan\",\"age\":18}}"; JSONObject data = JSON.parseObject(json2).getJSONObject("data");//获取data对象的JSONObject /** * 将data对象先转成一个json字符串后,再解析成一个map形式的数据结构 * 这种方式在测试中也用的比较普遍 */ Map<String, Object> dataInfo = JSON.parseObject(data.toJSONString(), new TypeReference<Map<String, Object>>(){}); System.out.println(dataInfo.get("name"));//输出zhangsan } public static class RetInfo{ private int retCode; private String retMsg; public int getRetCode() { return retCode; } public void setRetCode(int retCode) { this.retCode = retCode; } public String getRetMsg() { return retMsg; } public void setRetMsg(String retMsg) { this.retMsg = retMsg; } } public static void main(String[] args) { TestJasn t = new TestJasn(); t.testJson(); t.testJsonObject(); } }

浙公网安备 33010602011771号