[color=black][align=left][size=small]问题描述[/size][/align][/color]
接口调试过程中,发现调用同一个SQL的两个不同的Service返回值不一致
[color=black][align=left][size=small]问题分析[/size][/align][/color]
代码跟踪,对比两处调用的位置:
1.以map作为参数
2.以po类作为参数,再将po中属性取出放入map
后者正确而前者错误
[color=black][align=left][size=small]问题解决[/size][/align][/color]
与项目的结构有关,从上层逐步跟踪分析,结论如下:
1.web project 与 core(核心server 以及 dao 操作) project
2.调用时通过 HTTP请求的 core 部署的服务器地址,通过URI的映射,请求指定的接口,将参数传递过去,application / json 参数有一个json 的转换过程
3.问题定位到JSON 中的值得转化
[color=black][align=left][size=small]问题模拟[/size][/align][/color]
通过JSON格式化Map进行输出
[color=black][align=left][size=small]问题结论[/size][/align][/color]
JSON格式化过程中将Date自动转为Long
在使用此类型的数据时,需要再将其由Long转为Date
或参照
[url]http://blog.csdn.net/zhang289202241/article/details/71173001[/url]
[url]http://www.cnblogs.com/hdwpdx/p/5332591.html[/url]
进行解决
[color=black][align=left][size=small]触类旁通[/size][/align][/color]
AJAX提交数据时同样有此问题,传递的Date类型数据,在接收时会被转为Long
接口调试过程中,发现调用同一个SQL的两个不同的Service返回值不一致
[color=black][align=left][size=small]问题分析[/size][/align][/color]
代码跟踪,对比两处调用的位置:
1.以map作为参数
2.以po类作为参数,再将po中属性取出放入map
后者正确而前者错误
[color=black][align=left][size=small]问题解决[/size][/align][/color]
与项目的结构有关,从上层逐步跟踪分析,结论如下:
1.web project 与 core(核心server 以及 dao 操作) project
2.调用时通过 HTTP请求的 core 部署的服务器地址,通过URI的映射,请求指定的接口,将参数传递过去,application / json 参数有一个json 的转换过程
3.问题定位到JSON 中的值得转化
[color=black][align=left][size=small]问题模拟[/size][/align][/color]
通过JSON格式化Map进行输出
Map<String,Object> map = new HashMap<String,Object>(2);
map.put("date", new Date());
// import com.alibaba.fastjson.JSON;
String str = JSON.toJSONString(map);
// {"date":1506317028289}
System.out.println(str);
[color=black][align=left][size=small]问题结论[/size][/align][/color]
JSON格式化过程中将Date自动转为Long
在使用此类型的数据时,需要再将其由Long转为Date
或参照
[url]http://blog.csdn.net/zhang289202241/article/details/71173001[/url]
[url]http://www.cnblogs.com/hdwpdx/p/5332591.html[/url]
进行解决
[color=black][align=left][size=small]触类旁通[/size][/align][/color]
AJAX提交数据时同样有此问题,传递的Date类型数据,在接收时会被转为Long