来源:https://blog.csdn.net/wtopps/article/details/81087157
概述 今天遇见一个需求,需要对json数据进行下划线与驼峰格式之间进行转换,在Fastjson、Jackson、Gson都提供了转换的方式,在这里进行一下列举。 User类: public class User { private String nameInfo; private String ageInfo; public String getNameInfo() { return nameInfo; } public void setNameInfo(String nameInfo) { this.nameInfo = nameInfo; } public String getAgeInfo() { return ageInfo; } public void setAgeInfo(String ageInfo) { this.ageInfo = ageInfo; } } 

★ Fastjson: // 生产环境中,config要做singleton处理,要不然会存在性能问题 User user = new User(); user.setNameInfo("coder"); user.setAgeInfo("28"); SerializeConfig config = new SerializeConfig(); config.propertyNamingStrategy = PropertyNamingStrategy.SnakeCase; String json = JSON.toJSONString(user, config); Assert.assertEquals("{\"age_info\":\"28\",\"name_info\":\"coder\"}", json); ★Gson GsonBuilder gsonBuilder = new GsonBuilder(); gsonBuilder.setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES); Gson gson = gsonBuilder.create(); User user = new User(); user.setName("coder"); user.setAge(28); String json = gson.toJson(user); Assert.assertEquals("{\"age_info\":\"28\",\"name_info\":\"coder\"}", json);


★Jackson User user = new User(); user.setNameInfo("coder"); user.setAgeInfo("28"); ObjectMapper mapper = new ObjectMapper(); mapper.setPropertyNamingStrategy(com.fasterxml.jackson.databind.PropertyNamingStrategy.SNAKE_CASE); String json = mapper.writeValueAsString(user); Assert.assertEquals("{\"name_info\":\"coder\",\"age_info\":\"28\"}", json);

 

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄