在json对象中累积json数组时会添加额外的方括号

时间:2015-05-21 13:13:18

标签: arrays json jsonobject

请澄清为什么我在json对象中存储json数组时会得到额外的方括号

使用的json版本:json-20140107.jar

    JSONObject jsonObj = new JSONObject();
    JSONArray jsonArray = new JSONArray();
    jsonArray.put("value");
    jsonObj.accumulate("A", jsonArray);
    System.out.println(" jsonObj " + jsonObj);

输出:

jsonObj {"A":[["value"]]}

旧行为:

jsonObj {"A":["value"]}

1 个答案:

答案 0 :(得分:0)

因为方法is implemented to wrap the value in another array if it is already one

public JSONObject accumulate(String key, Object value) throws JSONException {
    testValidity(value);
    Object object = this.opt(key);
    if (object == null) {
        this.put(key,
                value instanceof JSONArray ? new JSONArray().put(value)
                        : value);
    } else if (object instanceof JSONArray) {
        ((JSONArray) object).put(value);
    } else {
        this.put(key, new JSONArray().put(object).put(value));
    }
    return this;
}