大话JSON:fastjson、jackson、json

xiaoxiao2021-02-27  209

江湖自从出现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(); }

转载请注明原文地址: https://www.6miu.com/read-13482.html

最新回复(0)