You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中如何删除JSON文件里ProductCharacteristic的name键值对

在Java中删除JSON里ProductCharacteristic数组对象的name键值对

下面提供两种Java常用JSON库的实现方案:

方案一:使用Jackson库

步骤说明

  1. 引入Jackson依赖
  2. 将JSON字符串解析为JsonNode对象
  3. 遍历顶层数组,定位到每个对象的ProductCharacteristic数组
  4. 遍历该数组内的每个对象,移除name键
  5. 将处理后的JsonNode转回JSON字符串

代码示例

<!-- Maven依赖 -->
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.15.2</version>
</dependency>
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ArrayNode;
import com.fasterxml.jackson.databind.node.ObjectNode;

public class JsonProcessing {
    public static void main(String[] args) throws Exception {
        String jsonStr = "[{\"id\": \"0028167072_CO_FIX_INTTV_1008_P3909_IDX0\",\"status\": \"Active\",\"startDate\": \"2023-02-12T22:00:00Z\",\"place\": [{\"id\": \"8\",\"apartment\": \"578\",\"role\": \"QA\",\"@referredType\": \"street\"}],\"ProductCharacteristic\": [{\"id\": \"CH_100473\",\"valueId\": \"CH12_1000374_VALUE04141\",\"value\": \"LTS\",\"name\": \"Computer\"}]}]";

        ObjectMapper mapper = new ObjectMapper();
        JsonNode rootNode = mapper.readTree(jsonStr);

        // 遍历顶层数组中的每个对象
        if (rootNode.isArray()) {
            for (JsonNode itemNode : rootNode) {
                JsonNode characteristicNode = itemNode.get("ProductCharacteristic");
                if (characteristicNode != null && characteristicNode.isArray()) {
                    // 遍历ProductCharacteristic数组内的每个对象
                    for (JsonNode charItem : characteristicNode) {
                        if (charItem.isObject()) {
                            ((ObjectNode) charItem).remove("name");
                        }
                    }
                }
            }
        }

        // 输出处理后的JSON
        String processedJson = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(rootNode);
        System.out.println(processedJson);
    }
}

方案二:使用Gson库

步骤说明

  1. 引入Gson依赖
  2. 用JsonParser将JSON字符串解析为JsonElement
  3. 遍历顶层数组,找到每个对象的ProductCharacteristic数组
  4. 遍历数组内对象,移除name属性
  5. 将处理后的JsonElement转换为格式化的JSON字符串

代码示例

<!-- Maven依赖 -->
<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.10.1</version>
</dependency>
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;

public class GsonProcessing {
    public static void main(String[] args) {
        String jsonStr = "[{\"id\": \"0028167072_CO_FIX_INTTV_1008_P3909_IDX0\",\"status\": \"Active\",\"startDate\": \"2023-02-12T22:00:00Z\",\"place\": [{\"id\": \"8\",\"apartment\": \"578\",\"role\": \"QA\",\"@referredType\": \"street\"}],\"ProductCharacteristic\": [{\"id\": \"CH_100473\",\"valueId\": \"CH12_1000374_VALUE04141\",\"value\": \"LTS\",\"name\": \"Computer\"}]}]";

        JsonElement rootElement = JsonParser.parseString(jsonStr);
        Gson gson = new GsonBuilder().setPrettyPrinting().create();

        if (rootElement.isJsonArray()) {
            JsonArray rootArray = rootElement.getAsJsonArray();
            for (JsonElement itemElement : rootArray) {
                if (itemElement.isJsonObject()) {
                    JsonObject itemObj = itemElement.getAsJsonObject();
                    JsonElement characteristicElement = itemObj.get("ProductCharacteristic");
                    if (characteristicElement != null && characteristicElement.isJsonArray()) {
                        JsonArray characteristicArray = characteristicElement.getAsJsonArray();
                        for (JsonElement charItemElement : characteristicArray) {
                            if (charItemElement.isJsonObject()) {
                                JsonObject charItemObj = charItemElement.getAsJsonObject();
                                charItemObj.remove("name");
                            }
                        }
                    }
                }
            }
        }

        // 输出处理后的JSON
        String processedJson = gson.toJson(rootElement);
        System.out.println(processedJson);
    }
}

内容的提问来源于stack exchange,提问作者Catea

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 07:35:34