php json 驼峰 下划线,java – Jersey JSON从驼峰转换为下划线(蛇案)

我最近换了2号球衣.

我浏览了文档/ web,并了解了如何使用.readEntity(ClassName.class)将响应类转换为自定义类;

但我坚持使用CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES命名策略.

当前转换失败,因为响应字段为“_”且我的POJO具有Snake大小写.

任何帮助将不胜感激.

在jersey1中,我一直这样做:

MyResponse myResponse = client

.resource(url)

.type(MediaType.APPLICATION_JSON)

.accept(MediaType.APPLICATION_JSON)

.post(RequestClass.class, request);

同样我无法实现后球衣2:

当我在上面的代码中时,它给出了编译时错误:

我也尝试过:

MyResponse myResponse = client

.target(getUrl())

.request()

.post(Entity.entity(request, MediaType.APPLICATION_JSON))

.readEntity(MyResponse.class);

但它没有创建myResponse对象,导致我得到的响应有Snake_case响应,但我的POJO有驼峰案例字段.

最佳答案:

这需要使用Jackson ObjectMapper进行配置.您可以在ContextResolver中执行此操作.基本上,您需要类似的东西

@Provider

public class MapperProvider implements ContextResolver {

final ObjectMapper mapper;

public MapperProvider() {

mapper = new ObjectMapper();

mapper.setPropertyNamingStrategy(

PropertyNamingStrategy.CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES);

}

@Override

public ObjectMapper getContext(Class> cls) {

return mapper;

}

}

然后注册您的客户

client.register(MapperProvider.class);

如果您在服务器上也需要此支持,那么您还需要在服务器上注册它.

标签:json,java,jackson,jersey-2-0,camelcasing

来源: https://codeday.me/bug/20190516/1115701.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值