首页 > 解决方案 > 在 java 中重新格式化 JSON 数组/对象

问题描述

我正在尝试将此 json 文件重新格式化为不同的格式。我以前从未使用过杰克逊或 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 文件中添加“列出水果”。

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

标签: javajsonjacksongson

解决方案


将 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);

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

class ListOfFruits {
    private Fruits listOfFruits;

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

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

ListOfFruits lof = new ListOfFruits(fruits);

最后生成输出 JSON:

String newJson = gson.toJson(lof);

推荐阅读