Fastjson 自定义 json 的 值输出格式
来源:互联网 发布:windows ce 6.0 编辑:程序博客网 时间:2024/06/13 21:47
使用 fastjson 自定义数值类型(也可以进行其他类型的处理)格式的配置说明。
fastjson 版本
com.alibaba:fastjson:1.2.37
json
对象中数值的序列化处理在 js
与 golang
中结果是一致的, java
使用 fastjson
默认情况 下与前两种是有区别的。 针对 json
对象进行序列化 {"name":"wxcsdb88","age":23.0, "salary": 15.00, "leftTime":0.00, "cost":99.0200}
,
js 处理:
JSON.stringify({"name":"wxcsdb88","age":23.0, "salary": 15.00, "leftTime":0.00, "cost":99.0200}) output: "{"name":"wxcsdb88","age":23,"salary":15,"leftTime":0,"cost":99.02}"
golang 处理
为了保持json序列化过程中的顺序我们需要先将其转换成 map(golang中有序), 再转换成 json, 最后转成 json 字符串, 即 struct->map->json->jsonStringoutput: "{"age":23,"cost":99.02,"leftTime":0,"name":"wxcsdb88","salary":15}"
java 处理
为了使 json
对象中的 value
保持与 js
的 JSON.stringify()
及 golang
的json
序列化保持一致结果,我们需要添加一个值过滤器,对特定类型值进行类型转换。
配置
自定义 json 对象中 value 的值过滤器 FastJsonValueFilter
public class FastJsonValueFilter implements ValueFilter { public static String getPrettyNumberString(String number) { return BigDecimal.valueOf(Double.parseDouble(number)) .stripTrailingZeros().toPlainString(); } public static BigDecimal getPrettyNumber(String number) { return BigDecimal.valueOf(Double.parseDouble(number)) .stripTrailingZeros(); } @Override public Object process(Object object, String name, Object value) {// System.out.println(String.format("name: %s, value: %s, type is: %s", name, value, value.getClass().getSimpleName())); if (value != null && value instanceof BigDecimal) { return getPrettyNumber(value.toString()); } return value; }}
使用
FastJsonValueFilter fastJsonValueFilter = new FastJsonValueFilter();public static String formatJsonContract(JSONObject jsonObject) { return JSONObject.toJSONString(jsonObject, fastJsonValueFilter, SerializerFeature.MapSortField, SerializerFeature.WriteNullStringAsEmpty, SerializerFeature.WriteMapNullValue, SerializerFeature.WriteNonStringKeyAsString, SerializerFeature.WriteNullNumberAsZero); }
阅读全文
0 0
- Fastjson 自定义 json 的 值输出格式
- Fastjson 自定义输出
- fastjson将对象格式化成json时的两个问题
- fastjson处理json数据转换传输的格式
- 【json】输出json格式的数据
- fastjson @JSONField自定义输出字段
- fastjson @JSONField自定义输出字段
- 输出自定义格式的日期
- fastjson输出空值
- 自定义alibaba的FastJson的key值
- FastJson对于JSON格式字符串、JSON对象及JavaBean之间的相互转换
- FastJson对于JSON格式字符串、JSON对象及JavaBean之间的相互转换
- FastJson对于JSON格式字符串、JSON对象及JavaBean之间的相互转换
- FastJson对于JSON格式字符串、JSON对象及JavaBean之间的相互转换
- FastJson对于JSON格式字符串、JSON对象及JavaBean之间的相互转换
- FastJson对于JSON格式字符串、JSON对象及JavaBean之间的相互转换
- fastJson java后台转换json格式数据
- fastJson java后台转换json格式数据
- javaweb+jQuery ajax实例
- 2017CCPC秦皇岛G ZOJ 3987Numbers(大数+贪心)
- mysql之常用函数集锦
- linux中的定时延时任务
- Action中使用Servlet对象
- Fastjson 自定义 json 的 值输出格式
- Python With Visual Studio Code – A 5 Step Guide
- 函数的定义
- 646. Maximum Length of Pair Chain(动态规划 vs 贪心)
- 【NOIP2017提高A组冲刺11.1】总结
- framebuffer简介与应用
- poj 3661(区间dp)
- 【单调队列】BZOJ1047(HAOI2007)[理想的正方形]题解
- 基于javaMail发送邮件的实现