Questo è perché nel metodo accumulate
,
Object object = this.opt(key); //gets the key value. Null in your case.
if (object == null) {
this.put(key,
value instanceof JSONArray ? new JSONArray().put(value) : value);
}
Questo è secondo l'API, che dice chiaramente (per il metodo accumulate
) -
Accumula valori sotto chiave. È simile al metodo put eccetto che se c'è già un oggetto memorizzato sotto la chiave, allora un JSONArray viene memorizzato sotto la chiave per contenere tutti i valori accumulati . Se esiste già un JSONArray, il nuovo valore è aggiunto a . Al contrario, il metodo put sostituisce il precedente valore . Se viene accumulato un solo valore che non è un JSONArray, allora il risultato sarà lo stesso dell'utilizzo di put. Ma se più valori sono accumulati, , il risultato sarà simile ad append.
È possibile utilizzare put()
come indicato nell'altra risposta, per il risultato desiderato.
fonte
2013-04-29 05:52:45