大话JSON:fastjson、jackson、json
2017-06-06 16:24
1101 查看
江湖自从出现JSON以来,纷争不断,大家都争先恐后地提供JSON的实现方式,其中以fasonjson、jackson、json为优秀代表。其中vertx默认就用jackson。综以概述,JSON可以使用JsonObject和JsonArray来表达。我将其主要特性提取出来,理解了这个即理解了JSON。
import java.time.Instant;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public interface JsonObjectFacade{
/*get*/
String getString(String key);
String getString(String key,String defaultValue);
Integer getInteger(String key);
Integer getInteger(String key,Integer defaultValue);
Long getLong(String key);
Long getLong(String key,Long defaultValue);
Double getDouble(String key);
Double getDouble(String key,Double defaultValue);
Float getFloat(String key);
Float getFloat(String key,Float defaultValue);
Boolean getBoolean(String key);
Boolean getBoolean(String key,Boolean defaultValue);
byte[] getBinary(String key);
Instant getInstant(String key);
Instant getInstant(String key,Instant defaultValue);
JsonObjectFacade getJsonObject(String key);
JsonObjectFacade getJsonObject(String key,JsonObjectFacade defaultValue);
JsonArrayFacade getJsonArray(String key);
JsonArrayFacade getJsonArray(String key,JsonArrayFacade defaultValue);
/*key*/
boolean containKey(String key);
Set<String> fieldNames();
Object remove(String key);
int size();
JsonObjectFacade clear();
boolean isEmpty();
/*put*/
@SuppressWarnings("rawtypes")
JsonObjectFacade put(String key,Enum value);
JsonObjectFacade put(String key,String value);
JsonObjectFacade put(String key,CharSequence value);
JsonObjectFacade put(String key,Integer value);
JsonObjectFacade put(String key,Long value);
JsonObjectFacade put(String key,Double value);
JsonObjectFacade put(String key,Float value);
JsonObjectFacade put(String key,Boolean value);
JsonObjectFacade put(String key,Instant value);
JsonObjectFacade put(String key,Object value);
JsonObjectFacade put(String key,byte[] value);
JsonObjectFacade put(String key,JsonObjectFacade value);
JsonObjectFacade put(String key,JsonArrayFacade value);
JsonObjectFacade putNull(String key);
JsonObjectFacade mergin(JsonObjectFacade other);
JsonObjectFacade copy();
Map<String, Object> getMap();
Iterator<Map.Entry<String, Object>> iterator();
/*string*/
String encode();
String encodePrettily();
}
JsonArray可以作为一个List看待,所有的操作基本都是对List的操作。
package com.xsy.json;
import java.time.Instant;
import java.util.Iterator;
import java.util.List;
public interface JsonArrayFacade{
/*get*/
String getString(int pos);
Integer getInteger(int pos);
Long getLong(int pos);
Double getDouble(int pos);
Float getFloat(int pos);
Boolean getBoolean(int pos);
byte[] getBinary(int pos);
Instant getInstant(int pos);
JsonObjectFacade getJsonObject(int pos);
JsonArrayFacade getJsonArray(int pos);
List<Object> getList();
/*key*/
boolean hasNull(int pos);
boolean contains(Object object);
int size();
boolean isEmpty();
JsonArrayFacade clear();
Iterator<Object> iterator();
/*add*/
@SuppressWarnings("rawtypes")
JsonArrayFacade add(Enum value);
JsonArrayFacade add(String value);
JsonArrayFacade add(CharSequence value);
JsonArrayFacade add(Integer value);
JsonArrayFacade add(Long value);
JsonArrayFacade add(Double value);
JsonArrayFacade add(Float value);
JsonArrayFacade add(Boolean value);
JsonArrayFacade add(byte[] value);
JsonArrayFacade add(Instant value);
JsonArrayFacade add(Object value);
JsonArrayFacade add(JsonObjectFacade value);
JsonArrayFacade add(JsonArrayFacade value);
JsonArrayFacade addAll(JsonArrayFacade array);
JsonArrayFacade addNull();
JsonArrayFacade copy(JsonArrayFacade array);
/*remove*/
boolean remove(Object object);
Object remove(int pos);
/*string*/
String encode();
String encodePrettily();
}
JsonObject可以作为一个map看待。所有的操作基本上就是对map的操作。
package com.xsy.json;import java.time.Instant;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public interface JsonObjectFacade{
/*get*/
String getString(String key);
String getString(String key,String defaultValue);
Integer getInteger(String key);
Integer getInteger(String key,Integer defaultValue);
Long getLong(String key);
Long getLong(String key,Long defaultValue);
Double getDouble(String key);
Double getDouble(String key,Double defaultValue);
Float getFloat(String key);
Float getFloat(String key,Float defaultValue);
Boolean getBoolean(String key);
Boolean getBoolean(String key,Boolean defaultValue);
byte[] getBinary(String key);
Instant getInstant(String key);
Instant getInstant(String key,Instant defaultValue);
JsonObjectFacade getJsonObject(String key);
JsonObjectFacade getJsonObject(String key,JsonObjectFacade defaultValue);
JsonArrayFacade getJsonArray(String key);
JsonArrayFacade getJsonArray(String key,JsonArrayFacade defaultValue);
/*key*/
boolean containKey(String key);
Set<String> fieldNames();
Object remove(String key);
int size();
JsonObjectFacade clear();
boolean isEmpty();
/*put*/
@SuppressWarnings("rawtypes")
JsonObjectFacade put(String key,Enum value);
JsonObjectFacade put(String key,String value);
JsonObjectFacade put(String key,CharSequence value);
JsonObjectFacade put(String key,Integer value);
JsonObjectFacade put(String key,Long value);
JsonObjectFacade put(String key,Double value);
JsonObjectFacade put(String key,Float value);
JsonObjectFacade put(String key,Boolean value);
JsonObjectFacade put(String key,Instant value);
JsonObjectFacade put(String key,Object value);
JsonObjectFacade put(String key,byte[] value);
JsonObjectFacade put(String key,JsonObjectFacade value);
JsonObjectFacade put(String key,JsonArrayFacade value);
JsonObjectFacade putNull(String key);
JsonObjectFacade mergin(JsonObjectFacade other);
JsonObjectFacade copy();
Map<String, Object> getMap();
Iterator<Map.Entry<String, Object>> iterator();
/*string*/
String encode();
String encodePrettily();
}
JsonArray可以作为一个List看待,所有的操作基本都是对List的操作。
package com.xsy.json;
import java.time.Instant;
import java.util.Iterator;
import java.util.List;
public interface JsonArrayFacade{
/*get*/
String getString(int pos);
Integer getInteger(int pos);
Long getLong(int pos);
Double getDouble(int pos);
Float getFloat(int pos);
Boolean getBoolean(int pos);
byte[] getBinary(int pos);
Instant getInstant(int pos);
JsonObjectFacade getJsonObject(int pos);
JsonArrayFacade getJsonArray(int pos);
List<Object> getList();
/*key*/
boolean hasNull(int pos);
boolean contains(Object object);
int size();
boolean isEmpty();
JsonArrayFacade clear();
Iterator<Object> iterator();
/*add*/
@SuppressWarnings("rawtypes")
JsonArrayFacade add(Enum value);
JsonArrayFacade add(String value);
JsonArrayFacade add(CharSequence value);
JsonArrayFacade add(Integer value);
JsonArrayFacade add(Long value);
JsonArrayFacade add(Double value);
JsonArrayFacade add(Float value);
JsonArrayFacade add(Boolean value);
JsonArrayFacade add(byte[] value);
JsonArrayFacade add(Instant value);
JsonArrayFacade add(Object value);
JsonArrayFacade add(JsonObjectFacade value);
JsonArrayFacade add(JsonArrayFacade value);
JsonArrayFacade addAll(JsonArrayFacade array);
JsonArrayFacade addNull();
JsonArrayFacade copy(JsonArrayFacade array);
/*remove*/
boolean remove(Object object);
Object remove(int pos);
/*string*/
String encode();
String encodePrettily();
}
相关文章推荐
- fastjson 与jackson 工具类封装
- FastJson、Jackson、Gson进行Java对象转换Json的细节处理
- java如何利用FastJSON、Gson、Jackson三种Json格式工具自定义时间序列化
- Jackson,Gson,Fastjson的解析时间对比
- FastJSON、Gson和Jackson性能对比
- 【web开发】fastjackson转换json字符串为bean时忽略未知字段
- java中使用fastjson、jackson、json-lib解析JSON-------------------妈妈再也不用担心JSON解析
- FastJson、Gson、Jackson json解析性能比较
- FastJson Jackson Gson使用教程
- SpringMVC 使用Fastjson代替Jackson
- FastJson与Jackson生成json时的区别
- FastJson与Jackson对比
- json-lib(ezmorph)、gson、flexJson、fastjson、jackson对比,实现java转json,json转java
- 使用jackson和fastjson分别生成json字符串的方式
- fastjson和jackson的简单对比
- FastJson、Jackson、Gson进行Java对象转换Json的细节处理
- Jackson和fastjson简单用法及性能对比
- json对象和java对象的相互转换方法(json-lib、jackson、fastjson、gson)
- 使用fastjson 替换springMvc默认的jackson
- FastJson、Jackson、Gson、Json的效率简单对比