连接 JSONArrays

2022-09-01 18:38:42

我在包下使用JSONArrayorg.json

我的第一个JSONArray是这样的:

[[“249404”,“VPR249404”],[“249403”,“VPR249403”],[“249391”,“M249391”]]

和第二

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

所以我想将新的JSONArray附加到我的第一个JSONArray。

我正在开发Java和Android。我听说过google-gson库,但我不知道它是否可以帮助我,但我不希望在我的Android应用程序中有任何其他依赖项。


答案 1

我会尝试这样的事情:

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

我现在没有编译器来测试,但你可以试一试,看看它是否有效(或者,至少,它让你知道如何做到这一点)。

编辑

此版本可以连接多个数组 ():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;
}

答案 2

试试这个:

private JSONArray concatArray(@NotNull JSONArray jsArr1, @NotNull JSONArray jsArr2) {
    List<Object> list = jsArr1.toList();
    list.addAll(jsArr2.toList());
    return new JSONArray(list);
}