问题描述
- 在web开发时,如果您后台用的是javaEE,经常需要将数据转换成JSON格式,以便序列化后返回给客户端;
- javaEE内部能够自己将list转为JSON格式,比如下面的程序,从数据库取得数据后放在list中,在return这个list的时候javaEE内部将list转为JSON格式并序列化,作为http请求实体返回给客户端;
1 | public List<ApplyInfo> getCurrentApply(int resourceId){ |
- 但是在javaEE升级后,这样的内部转JSON的机制貌似失效了(具体原因尚不清楚);
- 导致服务器成功取得了数据,但是客户端获取不了数据,报500错误;
解决方案
- 推荐一款轻量级的快速将数据转换为JSON格式的工具–fastjson,请看这里;
- 它使用起来非常方便,先在工程中引入这个包:
1 | import com.alibaba.fastjson.JSON; |
- 如果您的工程的maven工程,直接search这个包即可,添加后在pom.xml中即可看到包已经被引入:
1 | <dependency> |
- 直接调用JSON对象的toJSONString方法,就可将list转为JSON格式的String,然后我们手动构建http响应报文的实体:
1 | @GET |
- 访问我们写的API,看到数据成功被返回客户端;