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
.