本章節(jié)我們將為大家介紹如何在 Java 語(yǔ)言中使用 JSON。
類(lèi)庫(kù)選擇
Java中并沒(méi)有內(nèi)置JSON的解析,因此使用JSON需要借助第三方類(lèi)庫(kù)。
下面是幾個(gè)常用的 JSON 解析類(lèi)庫(kù):
- Gson: 谷歌開(kāi)發(fā)的 JSON 庫(kù),功能十分全面。
- FastJson: 阿里巴巴開(kāi)發(fā)的 JSON 庫(kù),性能十分優(yōu)秀。
- Jackson: 社區(qū)十分活躍且更新速度很快。
以下教程基于 FastJson 講解。
環(huán)境配置
在 Maven 構(gòu)建的項(xiàng)目中,在 pom.xml 文件中加入以下依賴即可。
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.47</version> </dependency>
編碼與解碼
編碼
從 Java 變量到 JSON 格式的編碼過(guò)程如下:
實(shí)例
public void testJson() { JSONObject object = new JSONObject(); //string object.put("string","string"); //int object.put("int",2); //boolean object.put("boolean",true); //array List<Integer> integers = Arrays.asList(1,2,3); object.put("list",integers); //null object.put("null",null); ? System.out.println(object); }
在上例中,首先建立一個(gè) JSON 對(duì)象,然后依次添加字符串、整數(shù)、布爾值以及數(shù)組,最后將其打印為字符串。
輸出結(jié)果如下:
{"boolean":true,"string":"string","list":[1,2,3],"int":2}
解碼
從 JSON 對(duì)象到 Java 變量的解碼過(guò)程如下:
實(shí)例
public void testJson2() { ? JSONObject object = JSONObject .parseObject("{"boolean":true,"string":"string","list":[1,2,3],"int":2}"); //string String s = object.getString("string"); System.out.println(s); //int int i = object.getIntValue("int"); System.out.println(i); //boolean boolean b = object.getBooleanValue("boolean"); System.out.println(b); //list List<Integer> integers = JSON.parseArray(object.getJSONArray("list").toJSONString(),Integer.class); integers.forEach(System.out::println); //null System.out.println(object.getString("null")); ? }
在上例中,首先從 JSON 格式的字符串中構(gòu)造一個(gè) JSON 對(duì)象,之后依次讀取字符串、整數(shù)、布爾值以及數(shù)組,最后分別打印,打印結(jié)果如下:
string 2 true 1 2 3 null
JSON 對(duì)象與字符串的相互轉(zhuǎn)化
方法 | 作用 |
---|---|
JSON.parseObject() |
從字符串解析 JSON 對(duì)象 |
JSON.parseArray() |
從字符串解析 JSON 數(shù)組 |
JSON.toJSONString(obj/array) |
將 JSON 對(duì)象或 JSON 數(shù)組轉(zhuǎn)化為字符串 |
實(shí)例
//從字符串解析JSON對(duì)象 JSONObject obj = JSON.parseObject("{"runoob":"菜鳥(niǎo)教程"}"); //從字符串解析JSON數(shù)組 JSONArray arr = JSON.parseArray("["菜鳥(niǎo)教程","RUNOOB"]n"); //將JSON對(duì)象轉(zhuǎn)化為字符串 String objStr = JSON.toJSONString(obj); //將JSON數(shù)組轉(zhuǎn)化為字符串 String arrStr = JSON.toJSONString(arr);
相關(guān)教程
- Fastjson 簡(jiǎn)明教程
- Json 教程
- Maven 教程