jackson提供动态序列化的输出json
static final ObjectMapper mapper = new ObjectMapper();
static {
//用到mapper的地方千万别换
mapper.setFilters(getFilters());
}
private static FilterProvider getFilters() {
FilterProvider filters = new SimpleFilterProvider()
.addFilter("afareFlightFilter", new SimpleBeanPropertyFilter(){
@Override
public void serializeAsField(
Object bean,
org.codehaus.jackson.JsonGenerator jgen,
org.codehaus.jackson.map.SerializerProvider prov,
org.codehaus.jackson.map.ser.BeanPropertyWriter writer)
throws Exception {
if (afareFlightFilterSets.contains(writer.getName())) {
return;
}
if ("group".contains(writer.getName()) &&
StringUtils.equals(writer.get(bean).toString(), "0")) {
return;
}
writer.serializeAsField(bean, jgen, prov);
}
});
return filters;
}
@JsonFilter("afareFlightFilter")
public class AfareFlight implements Serializable{
private static final long serialVersionUID = -5691992455196596940L;
String carrier;
String flightNumber;
String depAirport;
String depTime;
String arrAirport;
String arrTime;
String stopCities;
boolean codeshare;
String cabin;
/* 新增字段:舱位等级 1 经济舱,2 商务舱,3 头等舱,*/
int cabinClass = 0;
String aircraftCode;
/**
* 当前航段所属航程序号,从1开始
* 例如多程第一段:A-B-C;第二段:D-F
* 则航段A-B B-C的tripIndex值为1,D-F的tripIndex值为2
*/
int group;
}
测试代码:
public static void main(String[] args) throws Exception {
AfareBookingRequest request = new AfareBookingRequest();
AfareSimpleRouting routing = new AfareSimpleRouting();
request.setRouting(routing);
List<AfareFlight> fromSegments = Lists.newArrayList();
routing.setFromSegments(fromSegments);
AfareFlight f = new AfareFlight();
f.setGroup(0);
fromSegments.add(f);
String s = mapper.writeValueAsString(request);
System.out.println(s);
}
设置group为0 :不输出group
设置group为1:输出group
分享到:
相关推荐
jackson-databind-2.9.10.8.jar升级相关jar包包含: jackson-module-jaxb-annotations-2.9.10.jar jackson-core-2.9.10.jar jackson-databind-2.9.10.8.jar jackson-annotations-2.9.10.jar jackson-jaxrs-json-...
jackson-annotations-2.9.5.jar ,jackson-core-2.9.5.jar,jackson-databind-2.9.5.jar
jackson-annotations.jar jackson-core.jar jackson-databind.jar
jackson开发中用到的三个jar包,包含jackson-annotations-2.2.3.jar jackson-core-2.2.3.jar jackson-databind-2.2.3.jar
赠送jar包:jackson-databind-2.9.7.jar; 赠送原API文档:jackson-databind-2.9.7-javadoc.jar; 赠送源代码:jackson-databind-2.9.7-sources.jar; 包含翻译后的API文档:jackson-databind-2.9.7-javadoc-API...
可用于Spring MVC框架,spring MVC中返回使用@ResponseBody注解返回时,后台没报错,就控制台显示406 Not Acceptable 原因是缺少jackson的包:jackson-core-asl-1.9.2.jar和jackson-mapper-asl-1.9.2.jar
赠送jar包:jackson-dataformat-yaml-2.11.4.jar; 赠送原API文档:jackson-dataformat-yaml-2.11.4-javadoc.jar; 赠送源代码:jackson-dataformat-yaml-2.11.4-sources.jar; 赠送Maven依赖信息文件:jackson-data...
Spring MVC返回JSON数据 用到的jar包,主要是jackson-all-1.9.0.jar,jackson-all-1.9.9.jar,jackson-all-1.9.11.jar三个包
赠送jar包:jackson-module-jaxb-annotations-2.7.8.jar; 赠送原API文档:jackson-module-jaxb-annotations-2.7.8-javadoc.jar; 赠送源代码:jackson-module-jaxb-annotations-2.7.8-sources.jar; 赠送Maven依赖...
开发工具 jackson-databind-2.8.6开发工具 jackson-databind-2.8.6开发工具 jackson-databind-2.8.6开发工具 jackson-databind-2.8.6开发工具 jackson-databind-2.8.6开发工具 jackson-databind-2.8.6开发工具 ...
开发工具 jackson-annotations-2.8.6开发工具 jackson-annotations-2.8.6开发工具 jackson-annotations-2.8.6开发工具 jackson-annotations-2.8.6开发工具 jackson-annotations-2.8.6开发工具 jackson-annotations-...
赠送jar包:jackson-annotations-2.11.4.jar; 赠送原API文档:jackson-annotations-2.11.4-javadoc.jar; 赠送源代码:jackson-annotations-2.11.4-sources.jar; 赠送Maven依赖信息文件:jackson-annotations-...
赠送jar包:jackson-databind-2.13.1.jar; 赠送原API文档:jackson-databind-2.13.1-javadoc.jar; 赠送源代码:jackson-databind-2.13.1-sources.jar; 赠送Maven依赖信息文件:jackson-databind-2.13.1.pom; ...
jackson-core-asl-1.9.13.jar jackson-mapper-asl-1.9.13.ja spring mvc时,ajax传输json格式,@ResponseBody, 会出现错误,导入jackson-core-asl-1.9.13+jackson-mapper-asl-1.9.13jar
赠送jar包:jackson-module-jaxb-annotations-2.2.3.jar; 赠送原API文档:jackson-module-jaxb-annotations-2.2.3-javadoc.jar; 赠送源代码:jackson-module-jaxb-annotations-2.2.3-sources.jar; 赠送Maven依赖...
jackson-core-asl-1.9.13.jar和jackson-mapper-asl-1.9.13.jar,在ssh整合中需要用到。
赠送jar包:jackson-annotations-2.9.0.jar; 赠送原API文档:jackson-annotations-2.9.0-javadoc.jar; 赠送源代码:jackson-annotations-2.9.0-sources.jar; 赠送Maven依赖信息文件:jackson-annotations-2.9.0....
赠送jar包:jackson-dataformat-cbor-2.9.6.jar; 赠送原API文档:jackson-dataformat-cbor-2.9.6-javadoc.jar; 赠送源代码:jackson-dataformat-cbor-2.9.6-sources.jar; 赠送Maven依赖信息文件:jackson-data...
jackson-core-asl-1.7.2.jar jackson-mapper-asl-1.7.2.jar
赠送jar包:jackson-datatype-jsr310-2.13.1.jar; 赠送原API文档:jackson-datatype-jsr310-2.13.1-javadoc.jar; 赠送源代码:jackson-datatype-jsr310-2.13.1-sources.jar; 赠送Maven依赖信息文件:jackson-...