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
Method Summary
 void clear()
           
 Object clone()
           
 boolean containsKey(Object key)
           
 boolean containsValue(Object value)
           
 Set<Map.Entry<String,Object>> entrySet()
           
 boolean equals(Object obj)
           
 Object get(Object key)
           
 BigDecimal getBigDecimal(String key)
           
 BigInteger getBigInteger(String key)
           
 Boolean getBoolean(String key)
           
 boolean getBooleanValue(String key)
           
 Byte getByte(String key)
           
 byte[] getBytes(String key)
           
 byte getByteValue(String key)
           
 Date getDate(String key)
           
 Double getDouble(String key)
           
 double getDoubleValue(String key)
           
 Float getFloat(String key)
           
 float getFloatValue(String key)
           
 Integer getInteger(String key)
           
 int getIntValue(String key)
           
 JSONArray getJSONArray(String key)
           
 JSONObject getJSONObject(String key)
           
 Long getLong(String key)
           
 long getLongValue(String key)
           
<T> T
getObject(String key, Class<T> clazz)
           
 Short getShort(String key)
           
 short getShortValue(String key)
           
 Date getSqlDate(String key)
           
 String getString(String key)
           
 Timestamp getTimestamp(String key)
           
 int hashCode()
           
 Object invoke(Object proxy, Method method, Object[] args)
           
 boolean isEmpty()
           
 Set<String> keySet()
           
 Object put(String key, Object value)
           
 void putAll(Map<? extends String,? extends Object> m)
           
 Object remove(Object key)
           
 int size()
           
 Collection<Object> values()  

.

posted on 2019-06-13 00:58  liehen2046  阅读(3228)  评论(0编辑  收藏  举报