Concatenate JSONArrays

37,358

I would try something like this:

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

I don't have a compiler right now to test, but you can give it a try and see if it works (or, at least, it gives you an idea of how to do it).

EDIT

This version could concat multiple arrays (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;
}
Share:
37,358

Related videos on Youtube

Vikas
Author by

Vikas

&lt;3 to code..

Updated on July 09, 2022

Comments

  • Vikas
    Vikas almost 2 years

    I am using JSONArray under the org.json Package.

    My first JSONArray is like:

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

    and Second

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

    So I'd like to append new JSONArray to my first JSONArray.

    I am working on Java and Android. I have heard about google-gson library, but I don't know whether it can help me or not but I don't want any other dependency in my Android Application.

  • Pratik Butani
    Pratik Butani over 8 years
    How to keep duplicate values once only?
  • Alexander
    Alexander almost 6 years
    While this code may answer the question, providing additional context regarding how and why it solves the problem would improve the answer's long-term value.
  • FilippoG
    FilippoG about 4 years
    org.json.JSONException: JSONArray initial value should be a string or collection or array. at org.json.JSONArray.<init>(JSONArray.java:203)
  • mike
    mike over 2 years
    Add to Set first and result.put(Set.toArray) @Pratik Butani
  • Adrian Bob
    Adrian Bob over 2 years
    JSONArray does not provide addAll that method.