1、JSON 解析類庫html
FastJson: 阿里巴巴開發的 JSON 庫,性能十分優秀。java
在maven項目的pom文件中如下依賴git
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.47</version> </dependency>
2、編碼與解碼github
一、編碼json
import com.alibaba.fastjson.JSONObject; import java.util.Arrays; import java.util.List; public class JsonTest1 { public static void main(String[] args) { JSONObject object = new JSONObject(); object.put("String","String"); object.put("Integer",1); object.put("boolean",true); List<Integer> list = Arrays.asList(1,2,3,4,5); object.put("list",list); object.put(null,null); System.out.println(object); } }
結果dom
{"Integer":1,"boolean":true,"String":"String","list":[1,2,3,4,5]}
二、解碼maven
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import java.lang.annotation.ElementType; import java.util.Arrays; import java.util.List; public class JsonTest2 { public static void main(String[] args) { JSONObject object = JSONObject.parseObject("{\"boolean\":true,\"string\":\"string\",\"list\":[1,2,3],\"int\":2,\"test\":\"\"}"); //boolean Boolean bl = object.getBooleanValue("boolean"); System.out.println(bl); //String String string = object.getString("String"); System.out.println(string); //list List lts = JSON.parseArray(object.getJSONArray("list").toJSONString(), Integer.class); System.out.println(lts); for (Object i : lts) { System.out.println(i); } //Integer Integer integer = object.getIntValue("2"); System.out.println(integer); //沒有這個key String aa = object.getString("AA"); System.out.println(aa); String bb = (String) object.get("aa"); System.out.println(bb); //對應的key沒有value String dd = object.getString("test"); System.out.println(dd); String cc = object.get("test").toString(); System.out.println(cc); } }
結果性能
true null [1, 2, 3] 1 2 3 0 null null
最後2個的值爲 " "編碼
3、Json對象和字符串互相轉換spa
https://www.runoob.com/w3cnote/java-json-instro.html
4、關於JSON.toJSONString()的問題
原文:https://blog.csdn.net/weixin_43228497/article/details/87975659
4.1,第一種狀況:
Activity activity=new Activity();
String str= JSON.toJSONString(activity);
此時,str是{}
第二種狀況:
list list=new ArrayList();
String str= JSON.toJSONString(list);
此時,str是[]
第三種狀況:
String str= JSON.toJSONString(null);
此時,str是null
4.2,怎麼避免當list裏面什麼都沒有的時候, JSON.toJSONString()以後是[]?
if(CollectionUtils.isEmpty(activityTypeDTOS)) {//加這個判斷就能夠了
5、JSON.toJSON().toString()與JSON.toJSONString()結果相同
import com.alibaba.fastjson.JSON; import com..socialsecurity.domain.model.ABA1Entity; import java.util.ArrayList; public class JsonTest { public static void main(String[] args) { ABA1Entity aba1Entity1 = new ABA1Entity(); aba1Entity1.setAac002("2"); ABA1Entity aba1Entity2 = new ABA1Entity(); aba1Entity2.setAac002("3"); List<ABA1Entity> aba1EntityList = new ArrayList<>(); aba1EntityList.add(aba1Entity1); aba1EntityList.add(aba1Entity2); String json = JSON.toJSON(aba1EntityList).toString(); String json1 =JSON.toJSONString(aba1EntityList); System.out.println(json); System.out.println(json1); } }
結果
[{"aac002":"2"},{"aac002":"3"}]
[{"aac002":"2"},{"aac002":"3"}]
6、StringEscapeUtils.unescapeJava(jsonStr)去掉轉義符
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.socialsecurity.domain.model.Person2; import groovy.json.StringEscapeUtils; import java.util.HashMap; import java.util.List; import java.util.Map; public class Test { public static void main(String[] args) { List data = null; Map<String, String> resultMap = new HashMap<>(); JSONArray objArray = new JSONArray(); resultMap.put("age", "aa"); resultMap.put("name", "bb"); String jsonObject = JSON.toJSONString(resultMap); objArray.add(jsonObject); System.out.println("objArray:"+objArray); data = objArray; String json = JSON.toJSON(data).toString(); System.out.println(json); if (data.size() == 1) { JSONObject json3 = JSONObject.parseObject((String) data.get(0)); String jsonStr = JSON.toJSON(json3).toString(); String json4 = StringEscapeUtils.unescapeJava(jsonStr); System.out.println("data.get(0):"+jsonStr); System.out.println("StringEscapeUtils.unescapeJava(jsonStr):"+json4); } Person2 person = new Person2(); person.setName("bb"); person.setAge("aa"); String json1 = JSON.toJSON(person).toString(); System.out.println("person:"+json1); } }
結果:
objArray:["{\"name\":\"bb\",\"age\":\"aa\"}"] ["{\"name\":\"bb\",\"age\":\"aa\"}"] data.get(0):{"name":"bb","age":"aa"} StringEscapeUtils.unescapeJava(jsonStr):{"name":"bb","age":"aa"} person:{"name":"bb","age":"aa"}