2015-05-21 2 views
0

Просьба разъяснить мне, почему я получаю дополнительные квадратные скобки при сохранении массива 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"]} 

ответ

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; 
} 
+0

я знаю, что. но в старых версиях он обрабатывается правильно – rrsk

+0

thatsy я поднял здесь, чтобы спросить причину этого @marvin – rrsk

Смежные вопросы