简体   繁体   English

如何使用 Gson 将 Json 字符串列表转换为 JsonObject

[英]How to convert list of Json string to JsonObject using Gson

I have a list of Json string: List<String> jsonStringList , I want to convert it to a single JsonObject using Gson, may I know what is the best way to do it?我有一个 Json 字符串列表: List<String> jsonStringList ,我想使用 Gson 将其转换为单个 JsonObject,请问最好的方法是什么?

I know I can parse them one by one like:我知道我可以像这样一一解析它们:

for (String jsonString : jsonStringList) {
    JsonElement parsed = new JsonParser().parse(jsonString);
}

But how do I join them together?但是我如何将它们连接在一起呢? What is the best way to do it?最好的方法是什么?

        String s1 = "{\n" +
                "    \"userName\": \"RandomDiscord Name\",\n" +
                "    \"permissions\": \"read\"\n" +
                "  }";
        String s2 = "{\n" +
                "    \"userName\": \"RandomDiscord Name1\",\n" +
                "    \"permissions\": \"read2\"\n" +
                "  }";
        List<String> jsonStringList = Arrays.asList(new String[]{s1, s2});
        JSONArray arr = new JSONArray();
        for (String jsonString : jsonStringList) {
            JsonElement obj = new JsonParser().parse(jsonString);
            arr.add(obj);
        }
        String jsonString = arr.toString();
        System.out.println(jsonString);

        JSONObject obj = new JSONObject();
        try {
            obj.put("CustomObject", arr);
        } catch(JSONParseException e) {
            e.printStackTrace();
        }
        System.out.println(obj.toString());

Try to use JSONArray and while iterating List just add that object into JsonArray.尝试使用JSONArray并在迭代 List 时将 object 添加到 JsonArray 中。

For above code, i am getting below output O/P对于上面的代码,我得到低于 output O/P

[{"userName":"RandomDiscord Name","permissions":"read"},{"userName":"RandomDiscord Name1","permissions":"read2"}]
{"CustomObject":[{"userName":"RandomDiscord Name","permissions":"read"},{"userName":"RandomDiscord Name1","permissions":"read2"}]}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM