java - 在java中重新格式化JSON数组/对象

标签 java json jackson gson

我正在尝试将此 json 文件重新格式化为不同的格式。我以前从未使用过 jackson 或 gson。我明白了它的想法,但我不知道如何实现它。

所以我有一个 json 文件:file.json,其中包含:

 { 
     "Fruits": [
           {
             "name": "avocado",
             "organic": true
           },
           {
              "name": "mango",
              "organic": true
           }
    ]
}

我想要的是这种格式:

    { 
       "List Fruits":{
        "Fruits": [
           {
             "name": "avocado",
             "organic": true
           },
           {
              "name": "mango",
              "organic": true
           }
        ]
      }  
   }

以某种方式在 json 文件中添加“List Fruits”。

我正在尝试使用 jackson api,但我不知道如何使用。

最佳答案

将 JSON 分配给 String 变量,例如将上面的 JSON 分配给名为 json 的变量:

String json = "..." // here put your JSON text;

为您的对象准备类:

class Fruit {
    private String name;
    private boolean organic;
}

class Fruits {
    private List<Fruit> fruits;
}

然后使用 Gson 将 JSON 转换为您的对象:

Gson gson = new Gson();
Fruits fruits = gson.fromJson(json, Fruits.class);

接下来为您的 fruits 对象准备包装类 ListOfFruits:

class ListOfFruits {
    private Fruits listOfFruits;

    public ListOfFruits(Fruits fruits) {
        listOfFruits = fruits;
    }
}

接下来将您的 fruits 对象打包到另一个对象中:

ListOfFruits lof = new ListOfFruits(fruits);

最后生成输出 JSON:

String newJson = gson.toJson(lof);

关于java - 在java中重新格式化JSON数组/对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58663203/

相关文章:

java - 当存在 XML 注释而不是元素时,Jackson XML 反序列化失败

java - 将整数序列映射为重复序列

java - 仅通过代码配置 log4j2 - 以防缺少配置

java - 无法使用 GSON lib 反序列化对象

java - 使用 GSon 从 JSon 转换为多个未知的 java 对象类型

java - JAX-RS - JSON 属性值中关联对象的 toString()

java - 从 JSON 中的变量类型进行 Jackson 反序列化

java - 如何访问 ArrayList 元素列表

java - Mockito:使用 "thenReturn"中的方法返回模拟不起作用

sql - 更新对象数组中的特定对象 Postgres jsonb