使用Java将给定JSON数组转换为指定格式的最简单方法是什么?
实现JSON转换的最简方案
首先注意你提供的原始JSON存在语法问题,需要先修正后再处理:
- 最外层为数组但元素是键值对结构,实际应为JSON对象(外层用
{}包裹而非[]) atr4对应的value3缺少右引号,value7缺少字符串引号
修正后的原始JSON示例:
{ "key1":{ "atr1":"key1", "atr2":"value1", "atr3":"value2", "atr4":"value3", "atr5":"value4" }, "key2":{ "atr1":"key2", "atr2":"value5", "atr3":"value6", "atr4":"value7", "atr5":"value8" } }
最简单的实现方式是使用Java生态通用的Jackson JSON处理库完成,无需自定义复杂解析逻辑,也不需要额外定义对应实体类,操作步骤如下:
步骤1:引入Jackson依赖(Maven示例)
<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.15.2</version> </dependency>
步骤2:代码实现
import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.node.ObjectNode; import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class JsonConverter { public static void main(String[] args) throws Exception { // 替换为你实际的原始JSON字符串 String rawJson = "此处放修正后的原始JSON字符串"; ObjectMapper objectMapper = new ObjectMapper(); // 解析原始JSON为树结构 JsonNode rootNode = objectMapper.readTree(rawJson); List<JsonNode> resultList = new ArrayList<>(); // 遍历所有子对象,移除多余字段 Iterator<JsonNode> elements = rootNode.elements(); while (elements.hasNext()) { ObjectNode childNode = (ObjectNode) elements.next(); childNode.remove("atr1"); resultList.add(childNode); } // 输出格式化后的目标JSON String targetJson = objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(resultList); System.out.println(targetJson); } }
运行上述代码即可直接输出你需要的目标格式JSON。
内容的提问来源于stack exchange,提问作者Charith Jayasanka
相关产品推荐
相关产品推荐

