java中JsonObject与JsonArray怎么转换

前端开发   发布日期:2025年04月02日   浏览次数:161

这篇文章主要介绍“java中JsonObject与JsonArray怎么转换”,在日常操作中,相信很多人在java中JsonObject与JsonArray怎么转换问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”java中JsonObject与JsonArray怎么转换”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

备忘一下,首先

这是一个JsonArrayStr,他可以转换为JsonArray

  1. [{"name":"a1"},{"name":"a2"}]

这是一个JsonObjectStr,他可以转换为JsonObject

  1. {"result":[{"name":"a1"},{"name":"a2"}]}

JsonObject转换为java对象、JsonArray转换为Java对象

JsonObject的value为JsonArray,对应的java类型为List。在案例中,java代码如下(这里用的内部类)

  1. @Data
  2. @AllArgsConstructor
  3. @NoArgsConstructor
  4. class AList{
  5. private List<PersonA> result;
  6. }
  7. @Data
  8. @AllArgsConstructor
  9. @NoArgsConstructor
  10. class PersonA{
  11. private String name;
  12. }

使用fastjson转换jsonStr为java对象,完整代码如下

  1. public class JsonTest {
  2. public static void main(String[] args) {
  3. String strArray ="[{"name":"a1"},{"name":"a2"}]";
  4. String strObject ="{"result":[{"name":"a1"},{"name":"a2"}]}";
  5. // parseArray保证属性key一致即可正确转换
  6. List<PersonA> personAList = JSON.parseArray(strArray, PersonA.class);
  7. // parseObject需要保证属性key一致即可正确转换
  8. AList aList = JSON.parseObject(strObject, AList.class);
  9. }
  10. }
  11. @Data
  12. @AllArgsConstructor
  13. @NoArgsConstructor
  14. class AList{
  15. private List<PersonA> result;
  16. }
  17. @Data
  18. @AllArgsConstructor
  19. @NoArgsConstructor
  20. class PersonA{
  21. private String name;
  22. }

使用hutool转换jsonStr为java对象,核心代码如下

  1. List<PersonA> personAList = JSONUtil.toList(JSONUtil.parseArray(strArray), PersonA.class);

JsonArray转换为JsonObject

已知一个JsonArrayStr,内容为。

  1. [{"name":"a1"},{"name":"a2"}]

不可以直接parseObject,JsonObject格式为{},且含有键值对。

使用以下方法将JsonArrayStr转换为JsonObject对象:

使用fastjson

  1. JSONArray array = JSON.parseArray(strArray);
  2. JSONObject jsonObject = new JSONObject();
  3. jsonObject.put("result",array);

使用hutool

  1. JSONArray array = JSONUtil.parseObj(strArray);;
  2. JSONObject jsonObject = new JSONObject();
  3. jsonObject.put("result",array);

即将JsonArrayStr转换为JsonObjectStr

  1. {"result":[{"name":"a1"},{"name":"a2"}]}

真的搞不懂,为什么上游传一个json值下来,直接传一个object不行么?不行么?不行么???????

JsonArrayStr 转换为 JsonObjectStr

有什么好说的,加括号,加键。

推荐使用hutool的StrUtil.wrap()

  1. String strArray = "[{"name":"a1"},{"name":"a2"}]";
  2. String strObject = StrUtil.wrap(strArray, "{"result":", "}");

最后得到的值为

  1. {"result":[{"name":"a1"},{"name":"a2"}]}

补充:java中JSONObject和JSONArray解析

1.将xml字符串转换为JSONObject字符串

  1. org.json.JSONObject jsonObjectParent=XML.toJSONObject(josnStr);

2.解析JSONObject内容

如果解析的内容是json数据,就是带大括号的{},就用getJSONObject(),如果解析的内容json数组,就是带中括号[]的,就用 getJSONArray()

以上就是java中JsonObject与JsonArray怎么转换的详细内容,更多关于java中JsonObject与JsonArray怎么转换的资料请关注九品源码其它相关文章!