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) | |
| 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() |
.