JsonObject的get方法得到的对象是JsonElement对象,然后根据key对应的value类型,分别调用对应的 getAsInt 、getAsString 等方法。
如果key本身不存在的话,get方法返回的JsonElement对象是null,因此会出现空指针异常,所以需要在使用之前确定key本身存在。
JsonObject可以通过getAsJsonObject(String name) 来直接获取 JsonObject对象。
JsonObject可以通过getAsJsonArray(String name) 来直接获取 JsonArray对象。
修改添加属性:使用 addProperty方法,key存在就替换,不存在就添加
使用has方法来判断是否存在key
Java的泛型只在编译时有效,到了运行时这个泛型类型就会被擦除掉,即List<String>和List<Integer>在运行时其实都是List<Object>类型。
TypeToken
Map<Integer, Integer> map = GsonUtil.fromJson(bangDanNumMap, new TypeToken<Map<Integer, Integer>>() {
}.getType());
fastjson相关方法
public static final Object parse(String text);
public static final JSONObject parseObject(String text); // 把JSON文本parse成JSONObject
public static final <T> T parseObject(String text, Class<T> clazz); // 把JSON文本parse为JavaBean
public static final JSONArray parseArray(String text); // 把JSON文本parse成JSONArray
public static final <T> List<T> parseArray(String text, Class<T> clazz); //把JSON文本parse成JavaBean集合
public static final String toJSONString(Object object); // 将JavaBean序列化为JSON文本
public static final String toJSONString(Object object, boolean prettyFormat); // 将JavaBean序列化为带格式的JSON文本
public static final Object toJSON(Object javaObject); //将JavaBean转换为JSONObject或者JSONArray
转换日期类型(低版本)
JSON.toJSONStringWithDateFormat(obj, DATE_FORMAT)
只要value为空,key值就会被过滤掉
public static String toJSONString(Object object, SerializerFeature... features) {
return toJSONString(object, DEFAULT_GENERATE_FEATURE, features);
}
SerializerFeature枚举值
QuoteFieldNames | 输出key时是否使用双引号,默认为true |
---|---|
WriteMapNullValue | 是否输出值为null的字段,默认为false |
WriteNullNumberAsZero | 数值字段如果为null,输出为0,而非null |
WriteNullListAsEmpty | List字段如果为null,输出为[],而非null |
WriteNullStringAsEmpty | 字符类型字段如果为null,输出为”“,而非null |
WriteNullBooleanAsFalse | Boolean字段如果为null,输出为false,而非null |