java - 如何在 Android 中合并两个 JSON 数组?

标签 java android json gson

我有一个像这样的 JSON 响应:

[{"ProjectID":1,"ProjectName":"Test","UserID":[1,3,5,7],"RSID":[2,4,6,8]}]

但我需要像这样合并它:

[{"ProjectID":1,"ProjectName":"Test","RS":[{"UserID":1,"RSID":2},{"UserID":3,"RSID":4},{"UserID":5,"RSID":6},{"UserID":7,"RSID":8}
]}]

这可以做到吗?

最佳答案

i tried to solve your query in plain javascript. hope it helps you.

http://codepen.io/halimmln/pen/GjjLEW

下面的代码是使用 Java 执行相同的任务:

 JSONParser parser = new JSONParser();
    String oldJSON = "[{\"ProjectID\":1,\"ProjectName\":\"Test\",\"UserID\":[1,3,5,7],\"RSID\":[2,4,6,8]}]";

    JSONObject newJSON = new JSONObject();
    Object obj = parser.parse(oldJSON);
    JSONArray mainArray = (JSONArray) obj;
    JSONObject objects = (JSONObject) mainArray.get(0);

    newJSON.put("ProjectID", objects.get("ProjectID"));
    newJSON.put("ProjectName", objects.get("ProjectName"));

    JSONArray userId = (JSONArray) objects.get("UserID");
    JSONArray rsid = (JSONArray) objects.get("RSID");
    JSONArray newArr = new JSONArray();

    for (int i = 0; i < userId.size(); i++) {
        JSONObject combine = new JSONObject();
        System.out.println("inside array" + userId.get(i));
        combine.put("UserID", userId.get(i));
        combine.put("RSID", rsid.get(i));
        newArr.add(combine);
    }
    newJSON.put("RS", newArr);
    System.out.println("json" + newJSON.toJSONString());

关于java - 如何在 Android 中合并两个 JSON 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39585809/

相关文章:

android - 转换 Html 并将文本设置为 Textview

java - 使用 Gson 将单个 json 条目解析为多个对象

ios - json序列化在序列化本地json文件时返回null值

java - 如何在未修饰状态下调整 JDialog 的大小?

java - 如何仅比较二维 int 数组的值?

Java - 声明类一次即可在任何地方使用

java.lang.ClassCastException : class . .. 位于加载程序 'app' 的未命名模块中 - spring-boot-dev-tools

java - FragmentTransaction.replace() 崩溃 - 但仅在发布版本中

android - 在相机和图库之间进行选择以进行图像选择

PHP:将变量添加到 json_decode 中