请澄清为什么我在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"]}
答案 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;
}