您的位置:首页 > Web前端 > JavaScript

大话JSON:fastjson、jackson、json

2017-06-06 16:24 1101 查看
江湖自从出现JSON以来,纷争不断,大家都争先恐后地提供JSON的实现方式,其中以fasonjson、jackson、json为优秀代表。其中vertx默认就用jackson。综以概述,JSON可以使用JsonObject和JsonArray来表达。我将其主要特性提取出来,理解了这个即理解了JSON。

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();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: