Добавляется дополнительная квадратная скобка при накоплении массива json в объекте json
Пожалуйста, объясните мне, почему я получаю дополнительную квадратную скобку при сохранении массива 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 ответ
Потому что метод реализован для переноса значения в другой массив, если он уже один:
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;
}