添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
public class JSONObject
extends MapWrapper<String,Object>
implements JSON, JSONGetter<String>
JSON对象
json = new JSONObject().put("JSON", "Hello, World!").toString();
looly
另请参阅:
序列化表格
JSONObject ( Object source, JSONConfig config, Filter < MutablePair < String , Object >> filter)
构建JSONObject,规则如下: value为Map,将键值对加入JSON对象 value为JSON字符串(CharSequence),使用JSONTokener解析 value为JSONTokener,直接解析 value为普通JavaBean,如果为普通的JavaBean,调用其getters方法(getXXX或者isXXX)获得值,加入到JSON对象。
JSONObject ( Object source, String ... names)
构建指定name列表对应的键值对为新的JSONObject,情况如下: Object value)
设置表达式指定位置(或filed对应)的值
若表达式指向一个JSONArray则设置其坐标对应位置的值,若指向JSONObject则put对应key的值
注意:如果为JSONArray,设置值下标小于其长度,将替换原有值,否则追加新值
.表达式,可以获取Bean对象中的属性(字段)值或者Map中key对应的值 []表达式,可以获取集合等对象中对应index的值 表达式栗子: persion persion.name persons[3] person.friends[5].name
  • value为JSON字符串(CharSequence),使用JSONTokener解析
  • value为JSONTokener,直接解析
  • value为普通JavaBean,如果为普通的JavaBean,调用其getters方法(getXXX或者isXXX)获得值,加入到JSON对象。 例如:如果JavaBean对象中有个方法getName(),值为"张三",获得的键值对为:name: "张三"
  • source - JavaBean或者Map对象或者String
  • value为JSON字符串(CharSequence),使用JSONTokener解析
  • value为JSONTokener,直接解析
  • value为普通JavaBean,如果为普通的JavaBean,调用其getters方法(getXXX或者isXXX)获得值,加入到JSON对象。例如:如果JavaBean对象中有个方法getName(),值为"张三",获得的键值对为:name: "张三"
  • source - JavaBean或者Map对象或者String
    ignoreNullValue - 是否忽略空值
    从以下版本开始:
    3.0.9
  • value为JSON字符串(CharSequence),使用JSONTokener解析
  • value为JSONTokener,直接解析
  • value为普通JavaBean,如果为普通的JavaBean,调用其getters方法(getXXX或者isXXX)获得值,加入到JSON对象。例如:如果JavaBean对象中有个方法getName(),值为"张三",获得的键值对为:name: "张三"
  • source - JavaBean或者Map对象或者String
    ignoreNullValue - 是否忽略空值,如果source为JSON字符串,不忽略空值
    isOrder - 是否有序
    从以下版本开始:
    4.2.2
  • value为JSON字符串(CharSequence),使用JSONTokener解析
  • value为JSONTokener,直接解析
  • value为普通JavaBean,如果为普通的JavaBean,调用其getters方法(getXXX或者isXXX)获得值,加入到JSON对象。例如:如果JavaBean对象中有个方法getName(),值为"张三",获得的键值对为:name: "张三"
  • 如果给定值为Map,将键值对加入JSON对象;
    如果为普通的JavaBean,调用其getters方法(getXXX或者isXXX)获得值,加入到JSON对象
    例如:如果JavaBean对象中有个方法getName(),值为"张三",获得的键值对为:name: "张三"

    source - JavaBean或者Map对象或者String
    config - JSON配置文件, null 则使用默认配置
    从以下版本开始:
    4.2.2
    public JSONObject(Object source,
                      JSONConfig config,
                      Filter<MutablePair<String,Object>> filter)
    构建JSONObject,规则如下:
  • value为Map,将键值对加入JSON对象
  • value为JSON字符串(CharSequence),使用JSONTokener解析
  • value为JSONTokener,直接解析
  • value为普通JavaBean,如果为普通的JavaBean,调用其getters方法(getXXX或者isXXX)获得值,加入到JSON对象。例如:如果JavaBean对象中有个方法getName(),值为"张三",获得的键值对为:name: "张三"
  • 如果给定值为Map,将键值对加入JSON对象;
    如果为普通的JavaBean,调用其getters方法(getXXX或者isXXX)获得值,加入到JSON对象
    例如:如果JavaBean对象中有个方法getName(),值为"张三",获得的键值对为:name: "张三"

    source - JavaBean或者Map对象或者String
    config - JSON配置文件, null 则使用默认配置
    filter - 键值对过滤编辑器,可以通过实现此接口,完成解析前对键值对的过滤和修改操作, null 表示不过滤
    从以下版本开始:
    5.8.0

    setDateFormat

    public JSONObject setDateFormat(String format)
    设置转为字符串时的日期格式,默认为时间戳(null值)
    此方法设置的日期格式仅对转换为JSON字符串有效,对解析JSON为bean无效。
    format - 格式,null表示使用时间戳
    从以下版本开始:
    4.1.19
    public JSONArray toJSONArray(Collection<String> names)
                          throws JSONException
    将指定KEY列表的值组成新的JSONArray
    names - KEY列表
    A JSONArray of values.
    JSONException - If any of the values are non-finite numbers.
    从接口复制的说明: JSON
    设置表达式指定位置(或filed对应)的值
    若表达式指向一个JSONArray则设置其坐标对应位置的值,若指向JSONObject则put对应key的值
    注意:如果为JSONArray,设置值下标小于其长度,将替换原有值,否则追加新值
  • .表达式,可以获取Bean对象中的属性(字段)值或者Map中key对应的值
  • []表达式,可以获取集合等对象中对应index的值
  • 表达式栗子: persion persion.name persons[3] person.friends[5].name
    putByPath 在接口中 JSON
    expression - 表达式
    value - 值
    Object value) throws JSONException
    已过时。 此方法存在歧义,原Map接口返回的是之前的值,重写后返回this了,未来版本此方法会修改,请使用 set(String, Object)
    PUT 键值对到JSONObject中,在忽略null模式下,如果值为 null ,将此键移除
    put 在接口中 Map < String , Object >
    put 在类中 MapWrapper < String , Object >
    key - 键
    value - 值对象. 可以是以下类型: Boolean, Double, Integer, JSONArray, JSONObject, Long, String, or the JSONNull.NULL.
    this.
    JSONException - 值是无穷数字抛出此异常
    key - 键
    value - 值对象. 可以是以下类型: Boolean, Double, Integer, JSONArray, JSONObject, Long, String, or the JSONNull.NULL.
    this.
    JSONException - 值是无穷数字抛出此异常
    public JSONObject set(String key,
                          Object value,
                          Filter<MutablePair<String,Object>> filter,
                          boolean checkDuplicate)
                   throws JSONException
    设置键值对到JSONObject中,在忽略null模式下,如果值为 null ,将此键移除
    key - 键
    value - 值对象. 可以是以下类型: Boolean, Double, Integer, JSONArray, JSONObject, Long, String, or the JSONNull.NULL.
    filter - 键值对过滤编辑器,可以通过实现此接口,完成解析前对键值对的过滤和修改操作, null 表示不过滤
    checkDuplicate - 是否检查重复键,如果为 true ,则出现重复键时抛出 JSONException 异常
    this.
    JSONException - 值是无穷数字抛出此异常
    从以下版本开始:
    5.8.0
    key - 键
    value - 值对象,可以是以下类型: Boolean, Double, Integer, JSONArray, JSONObject, Long, String, or the JSONNull.NULL.
    this.
    JSONException - 值是无穷数字、键重复抛出异常
    public JSONObject setOnce(String key,
                              Object value,
                              Filter<MutablePair<String,Object>> filter)
                       throws JSONException
    一次性Put 键值对,如果key已经存在抛出异常,如果键值中有null值,忽略
    key - 键
    value - 值对象,可以是以下类型: Boolean, Double, Integer, JSONArray, JSONObject, Long, String, or the JSONNull.NULL.
    filter - 键值对过滤编辑器,可以通过实现此接口,完成解析前对键值对的过滤和修改操作, null 表示不过滤
    JSONException - 值是无穷数字、键重复抛出异常
    从以下版本开始:
    5.8.0
    key - 键
    value - 值对象,可以是以下类型: Boolean, Double, Integer, JSONArray, JSONObject, Long, String, or the JSONNull.NULL.
    this.
    JSONException - 值是无穷数字
    throws JSONException
    积累值。类似于set,当key对应value已经存在时,与value组成新的JSONArray.
    如果只有一个值,此值就是value,如果多个值,则是添加到新的JSONArray中
    key - 键
    value - 被积累的值
    this.
    JSONException - 如果给定键为 null 或者键对应的值存在且为非JSONArray
    Object value) throws JSONException
    追加值,如果key无对应值,就添加一个JSONArray,其元素只有value,如果值已经是一个JSONArray,则添加到值JSONArray中。
    key - 键
    value - 值
    this.
    JSONException - 如果给定键为 null 或者键对应的值存在且为非JSONArray
    public JSONObject increment(String key)
                         throws JSONException
    对值加一,如果值不存在,赋值1,如果为数字类型,做加一操作
    key - A key string.
    this.
    JSONException - 如果存在值非Integer, Long, Double, 或 Float.

    toJSONString

    public String toJSONString(int indentFactor,
                               Filter<MutablePair<Object,Object>> filter)
    返回JSON字符串
    支持过滤器,即选择哪些字段或值不写出
    indentFactor - 每层缩进空格数
    filter - 过滤器,同时可以修改编辑键和值
    JSON字符串
    从以下版本开始:
    5.7.15
    从接口复制的说明: JSON
    将JSON内容写入Writer
    Warning: This method assumes that the data structure is acyclical.
    write 在接口中 JSON
    writer - writer
    indentFactor - 缩进因子,定义每一级别增加的缩进量
    indent - 本级别缩进量
    Writer
    JSONException - JSON相关异常