Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.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
如何在将JSON字符串转换为Java对象时忽略特定的JSON字段?_Java_Json_Jackson - Fatal编程技术网

如何在将JSON字符串转换为Java对象时忽略特定的JSON字段?

如何在将JSON字符串转换为Java对象时忽略特定的JSON字段?,java,json,jackson,Java,Json,Jackson,我有以下json数据作为来自数据库的响应,我需要将其映射到我的JavaPOJO Json响应: 波乔 Class车辆{ 字符串媒体; 清单车; } 班车{ 私营公司; 私人色彩; } 我正在使用Jackson进行反序列化,它将json绑定到Java对象,但是附加的 野战卡利斯特给出了一个错误。我希望在绑定时避免使用“CarList”字段(json字符串到JavaPOJO) 我想知道一种实现这一目标的方法。或者任何建议都很好。也许它没有那么干净。但是,如果您想避免在pojo中使用此carList

我有以下json数据作为来自数据库的响应,我需要将其映射到我的JavaPOJO

Json响应: 波乔
Class车辆{
字符串媒体;
清单车;
}
班车{
私营公司;
私人色彩;
}
我正在使用Jackson进行反序列化,它将json绑定到Java对象,但是附加的 野战卡利斯特给出了一个错误。我希望在绑定时避免使用“CarList”字段(json字符串到JavaPOJO)


我想知道一种实现这一目标的方法。或者任何建议都很好。

也许它没有那么干净。但是,如果您想避免在pojo中使用此
carList
字段,可以执行以下操作:

您可以提供setter方法并设置实际需要的字段

@JsonProperty("carList")
public void setCarList(Map<String, List<Car>> cars) {
  this.car = cars.get("carList");
}
@JsonProperty(“carList”)
公共车辆管理员(地图车){
this.car=cars.get(“carList”);
}

实际上,您不想忽略
CarList
字段,而是想自动“展开”它

为此,您可能需要一个包装器类:

public class CarList {
    private final List<Car> car;
    @JsonCreator
    public CarList(@JsonProperty("car") List<Car> car) {
        this.car = car == null ? Collections.emptyList() : Collection.unmodifiableList(car);       
    }
    ... 
}
public-class-CarList{
私家车;
@JsonCreator
公共卡利斯特(@JsonProperty(“car”)列表car){
this.car=car==null?Collections.emptyList():Collection.unmodifiableList(car);
}
... 
}
然后

公共级车辆{
私人媒体;
私家车;
@JsonCreator
公共CarList(@JsonProperty(“travelMedium”)字符串travelMedium,
@JsonProperty(“卡利斯特”)卡利斯特(卡利斯特){
this.travelmedia=travelmedia;
this.car=carList==null?Collections.emptyList():Collection.unmodifiableList(carList.getCar());
}
... 
}

您可能必须将其读作
地图
,然后将其强制转换。你可以测试一下。卡利斯特的错误是什么?您也知道,
私人公司;专用颜色
语法不正确您缺少数据类型
@JsonProperty("carList")
public void setCarList(Map<String, List<Car>> cars) {
  this.car = cars.get("carList");
}
public class CarList {
    private final List<Car> car;
    @JsonCreator
    public CarList(@JsonProperty("car") List<Car> car) {
        this.car = car == null ? Collections.emptyList() : Collection.unmodifiableList(car);       
    }
    ... 
}
public class Vehicle {
    private final String travelMedium;
    private final List<Car> car;
    @JsonCreator
    public CarList(@JsonProperty("travelMedium") String travelMedium,
                   @JsonProperty("CarList") CarList carList) {
        this.travelMedium = travelMedium;
        this.car = carList == null ? Collections.emptyList() : Collection.unmodifiableList(carList.getCar());
    }
    ... 
}