Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.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 安全地忽略包含所有其他对象的JSON属性_Java_Json_Spring_Jackson_Jackson Databind - Fatal编程技术网

Java 安全地忽略包含所有其他对象的JSON属性

Java 安全地忽略包含所有其他对象的JSON属性,java,json,spring,jackson,jackson-databind,Java,Json,Spring,Jackson,Jackson Databind,我正在使用SpringBoot,正在使用Jackson解析JSON文件。文件看起来像这样 { "grouping": [ { "obj1": "value1", "obj2": "value2", "obj3": "value3", "obj4": "value4" }, { "obj1": "value1",

我正在使用SpringBoot,正在使用Jackson解析JSON文件。文件看起来像这样

{
    "grouping": [
        {
            "obj1": "value1",
            "obj2": "value2",
            "obj3": "value3",
            "obj4": "value4"
        },
        {
            "obj1": "value1",
            "obj2": "value2",
            "obj3": "value3",
            "obj4": "value4"
            },
        },
        {
            "obj1": "value1",
            "obj2": "value2",
            "obj3": "value3",
            "obj4": "value4"
            },
        }
    ]
}
当我用Jackson的ObjectMapper解析它时,它抛出一个错误,说我没有使用@JsonProperty定义“分组”。问题是我不关心这个初始标题,但是如果我忽略它(使用@JsonIgnoreProperties(“分组”),那么其余的数据将被跳过,并且我当前将得到一个包含default构造函数值的对象


我需要创建一次性变量还是需要重新构造对象/类?

有两种可能:

1) 创建变量
分组
并将结果解析为对象: 例如:

ObjectMapper mapper = new ObjectMapper();
Holder holder = mapper.readValue(content, Holder.class);
ObjHolder[] objHolder = holder.getGrouping().getObjHolderArray();
ObjectMapper mapper = new ObjectMapper();
JsonNode actualObj = mapper.readTree(content);
JsonNode array = actualObj.get("grouping");
ObjHolder[] objHolders = mapper.treeToValue(array, ObjHolder[].class);
2) 将整个JSON作为JsonNode读取,导航到
grouping
,并将其内容解析为数组。例如:

ObjectMapper mapper = new ObjectMapper();
Holder holder = mapper.readValue(content, Holder.class);
ObjHolder[] objHolder = holder.getGrouping().getObjHolderArray();
ObjectMapper mapper = new ObjectMapper();
JsonNode actualObj = mapper.readTree(content);
JsonNode array = actualObj.get("grouping");
ObjHolder[] objHolders = mapper.treeToValue(array, ObjHolder[].class);

嗯,你有一个带有分组数组的对象。。。只需解析一个JSON数组。。。不要创建对象这是正确的,特别需要:
JsonNode-JsonNode=objectMapper.readTree(“文件名”);String arrayString=jsonNode.get(“分组”).toString();MyArraylist=objectMapper.readValue(arrayString,new TypeReference(){})