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

huangapple go评论114阅读模式
英文:

How to convert list of Json string to JsonObject using Gson

问题

我有一个 JSON 字符串列表:List<String> jsonStringList,我想使用 Gson 将它们转换为单个 JsonObject,我想知道最佳方法是什么?

我知道我可以逐个解析它们,就像这样:

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

但是我该如何将它们合并在一起?最佳方法是什么?

英文:

I have a list of Json string: List&lt;String&gt; jsonStringList, I want to convert it to a single JsonObject using Gson, may I know what is the best way to do it?

I know I can parse them one by one like:

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

But how do I join them together? What is the best way to do it?

答案1

得分: 1

  1. String s1 = "{\n" +
  2. " \"userName\": \"RandomDiscord Name\",\n" +
  3. " \"permissions\": \"read\"\n" +
  4. " }";
  5. String s2 = "{\n" +
  6. " \"userName\": \"RandomDiscord Name1\",\n" +
  7. " \"permissions\": \"read2\"\n" +
  8. " }";
  9. List<String> jsonStringList = Arrays.asList(new String[]{s1, s2});
  10. JSONArray arr = new JSONArray();
  11. for (String jsonString : jsonStringList) {
  12. JsonElement obj = new JsonParser().parse(jsonString);
  13. arr.add(obj);
  14. }
  15. String jsonString = arr.toString();
  16. System.out.println(jsonString);
  17. JSONObject obj = new JSONObject();
  18. try {
  19. obj.put("CustomObject", arr);
  20. } catch(JSONParseException e) {
  21. e.printStackTrace();
  22. }
  23. System.out.println(obj.toString());

输出结果:

  1. [
  2. {"userName":"RandomDiscord Name","permissions":"read"},
  3. {"userName":"RandomDiscord Name1","permissions":"read2"}
  4. ]
  5. {"CustomObject":[{"userName":"RandomDiscord Name","permissions":"read"},{"userName":"RandomDiscord Name1","permissions":"read2"}]}
英文:
  1. String s1 = &quot;{\n&quot; +
  2. &quot; \&quot;userName\&quot;: \&quot;RandomDiscord Name\&quot;,\n&quot; +
  3. &quot; \&quot;permissions\&quot;: \&quot;read\&quot;\n&quot; +
  4. &quot; }&quot;;
  5. String s2 = &quot;{\n&quot; +
  6. &quot; \&quot;userName\&quot;: \&quot;RandomDiscord Name1\&quot;,\n&quot; +
  7. &quot; \&quot;permissions\&quot;: \&quot;read2\&quot;\n&quot; +
  8. &quot; }&quot;;
  9. List&lt;String&gt; jsonStringList = Arrays.asList(new String[]{s1, s2});
  10. JSONArray arr = new JSONArray();
  11. for (String jsonString : jsonStringList) {
  12. JsonElement obj = new JsonParser().parse(jsonString);
  13. arr.add(obj);
  14. }
  15. String jsonString = arr.toString();
  16. System.out.println(jsonString);
  17. JSONObject obj = new JSONObject();
  18. try {
  19. obj.put(&quot;CustomObject&quot;, arr);
  20. } catch(JSONParseException e) {
  21. e.printStackTrace();
  22. }
  23. System.out.println(obj.toString());

Try to use JSONArray and while iterating List<String> just add that object into JsonArray.

For above code, i am getting below output
O/P

  1. [{&quot;userName&quot;:&quot;RandomDiscord Name&quot;,&quot;permissions&quot;:&quot;read&quot;},{&quot;userName&quot;:&quot;RandomDiscord Name1&quot;,&quot;permissions&quot;:&quot;read2&quot;}]
  2. {&quot;CustomObject&quot;:[{&quot;userName&quot;:&quot;RandomDiscord Name&quot;,&quot;permissions&quot;:&quot;read&quot;},{&quot;userName&quot;:&quot;RandomDiscord Name1&quot;,&quot;permissions&quot;:&quot;read2&quot;}]}

huangapple
  • 本文由 发表于 2020年8月20日 18:17:13
  • 转载请务必保留本文链接:https://go.coder-hub.com/63502959.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定