Java中Json处理(22.02.14)
Java中并没有内置JSON的解析,因此使用JSON需要借助第三方类库。
下面是几个常用的 JSON 解析类库:
FastJson方法介绍
这里以阿里的FastJson为例
| 方法 | 作用 |
|---|---|
JSON.parseObject() | 从字符串解析 JSON 对象 |
JSON.parseArray() | 从字符串解析 JSON 数组 |
JSON.toJSONString(obj/array) | 将 JSON 对象或 JSON 数组转化为字符串 |
//从字符串解析JSON对象
JSONObject obj = JSON.parseObject("{"runoob":"菜鸟教程"}");
//从字符串解析JSON数组
JSONArray arr = JSON.parseArray("["菜鸟教程","RUNOOB"]\n");
//将JSON对象转化为字符串
String objStr = JSON.toJSONString(obj);
//将JSON数组转化为字符串
String arrStr = JSON.toJSONString(arr);
DemoJSON编码与解码
-
导入依赖
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.47</version> </dependency> -
Json编码与解码
-
编码: Java变量
=>JSON格式的编码过程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); } -
解码: Json对象
=>Java变量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")); • }
-
注意:
在使用时的导包问题
import net.sf.json.JSONObject; // 错误的包
import com.alibaba.fastjson.JSONObject; //正确的包
\