JSON
Gson: 來自Google,功能全面、快速、簡潔、面向對象、數據傳遞和解析方便。
Jackson:來源FasterXML項目,社區活躍,更新快 解析速度和效率比Gson快,但無法按需解析,必須解析所有的KEY,逐層轉換。
FastJson: 來自alibaba,性能優秀,但標准性兼容性不如Jackson,對部分特殊字符無法轉換,非逐層轉換,所以子元素需要再次轉換。
FastJson
import com.alibaba.fastjson.JSONObject; // -> Object Object parse(String str) JSONObject parseObject(String str) JSONArray parseArray(String str) // -> bean T parseObject(String text, Class clazz) //一個bean對象的解析生成 List parseArray(String text, Class clazz) //多個bean對象的解析生成 // bean -> json String toJSONString(Object object) String toJSONString(Object object, boolean prettyFormat) Object toJSON(Object javaObject) // json -> date JSON.toJSONString(resultMap,SerializerFeature.WriteDateUseDateFormat);
引用
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.47</version> </dependency>
常用類型->JSON
JSONObject object = new JSONObject(); object.put("string","string"); object.put("int",2); object.put("boolean",true); List<Integer> integers = Arrays.asList(1,2,3); object.put("list",integers); object.put("null",null); System.out.println(object);
{"boolean":true,"string":"string","list":[1,2,3],"int":2}
JSONObject object = JSONObject.parseObject("{\"boolean\":true,\"string\":\"string\",\"list\":[1,2,3],\"int\":2}"); String s = object.getString("string"); System.out.println(s); //String int i = object.getIntValue("int"); System.out.println(i); //2 boolean b = object.getBooleanValue("boolean"); System.out.println(b); //true List<Integer> integers = JSON.parseArray(object.getJSONArray("list").toJSONString(),Integer.class); integers.forEach(System.out::println); //1 2 3 System.out.println(object.getString("null")); //null
API
public class JSONObject extends JSON implements Map<String, Object>, Cloneable, Serializable, InvocationHandler
.