2011-01-04 6 views
22

Używam JSONArray w ramach pakietu org.json.Concate JSONArray

My pierwszy JSONArray jest podobnym

[[ "249404", "VPR249404"], [ "249403", "VPR249403"], [ "249391", "M249391"]]

i drugi

[[ "249386", "M249386"], [ "249385", "M249385 (i)"], [ "249384", "I249384"]]

Chciałbym dodać nowy JSONArray do mojego pierwszego JSONArray.

Pracuję nad Javą i Androidem. Słyszałem o bibliotece google-gson, ale nie wiem, czy to mi pomoże, ale nie chcę żadnej innej zależności w mojej aplikacji Android.

Odpowiedz

45

chciałbym spróbować coś takiego:

private JSONArray concatArray(JSONArray arr1, JSONArray arr2) 
     throws JSONException { 
    JSONArray result = new JSONArray(); 
    for (int i = 0; i < arr1.length(); i++) { 
     result.put(arr1.get(i)); 
    } 
    for (int i = 0; i < arr2.length(); i++) { 
     result.put(arr2.get(i)); 
    } 
    return result; 
} 

nie mam kompilatora teraz przetestować, ale można spróbować i zobaczyć czy wszystko działa (lub, przynajmniej, daje masz pomysł, jak to zrobić).

EDIT

Ta wersja mogłaby Concat wielu tablic (concatArray(arr1, arr2, arr3))

private JSONArray concatArray(JSONArray... arrs) 
     throws JSONException { 
    JSONArray result = new JSONArray(); 
    for (JSONArray arr : arrs) { 
     for (int i = 0; i < arr.length(); i++) { 
      result.put(arr.get(i)); 
     } 
    } 
    return result; 
} 
+1

Jak zachować zduplikowane wartości tylko jeden raz? –