Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java JSONNOCT删除中间的一个容器_Java_Jackson_Jackson Databind - Fatal编程技术网

java JSONNOCT删除中间的一个容器

java JSONNOCT删除中间的一个容器,java,jackson,jackson-databind,Java,Jackson,Jackson Databind,我有一个关于以下Json的问题 { "Parent": { "pk1": "pv1", "pk2": "pv2", "Child": { "*": { "ck1": "cv1", "ck2": "cv2" } } } } 现在我想删除*:{},但保留其内容。预期输出如下所示 { "Parent":

我有一个关于以下Json的问题

{
    "Parent": {
        "pk1": "pv1",
        "pk2": "pv2",
        "Child": {
            "*": {
                "ck1": "cv1",
                "ck2": "cv2"
            }
        }
    }
}
现在我想删除*:{},但保留其内容。预期输出如下所示

{
    "Parent": {
        "pk1": "pv1",
        "pk2": "pv2",
        "Child": {
            "ck1": "cv1",
            "ck2": "cv2"
        }
    }
}

如何使用Java Jackson实现这一点?

请参见下面的操作

    ObjectMapper mapper = new ObjectMapper();
    String file = "src/main/resources/yourjson.json";
    JsonNode object = mapper.readTree(new File(file));
    ObjectNode child = (ObjectNode) object.path("Parent").path("Child");
    JsonNode star = child.path("*");
    child.remove("*");
    Iterator<String> startFieldNames = star.fieldNames();
    while (startFieldNames.hasNext()) {
        String startFieldName = startFieldNames.next();
        child.set(startFieldName, star.get(startFieldName));
    }
    System.out.println(mapper.writer().withDefaultPrettyPrinter().writeValueAsString(object));