分享一次下划线格式参数json串转换为驼峰obj的case
业务场景
工程内定义model的参数命名格式为驼峰命名,但是微信小程序接口参数命名格斯为snake_case下划线格式。是妥协使用下划线还是坚持节操继续驼峰?
作为一个技术控,程序员的荣誉告诉我决不妥协。
ok,发现有两种方式可以达成目的。
1.fastJson:
用法:JSON.parseObject(String json, class clazz, ParserConfig pc);
ParserConfig pc = new ParserConfig();
pc.propertyNamingStrategy= com.alibaba.fastjson.PropertyNamingStrategy.SnakeCase;
JSON.parseObject(json, clazz, pc);
配合泛型方法可以将方法与class松耦合,写出json--->Object的util;
2.jackson:
用法:ObjectMapper.readValue(String json, Class clazz)
ObjectMapper mapper = new ObjectMapper();
mapper.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE);
mapper.readValue(json, clazz);
同样,驼峰转下划线也可实现,更改propertyNamingStrategy策略即可
时间原因,有空再究其原理。
小结
1.支持复杂的内部类,速度快。
2.jackson的方法不支持json串的barcode转为obj中的barCode, fastJson是支持的,建议优先使用fastJson。