带有对象属性的bean,如何转换成json对象或者字符串
Accounts类
{
。。。。属性
private Users user; //这个是一个User类。对应到数据库上是userid
}
现在。我在action层。需要把得到的Accounts实例,转换成json格式。
出现问题:Accounts实例可以成功转换成json格式字符串。但是其中User的相关信息并没有得到。而且调试发现Accounts实例中是有User属性值的【我已经取消了懒加载】。问题就出现了转换到json这块了。如果通过jstl在前台是可以 accounts.user.userid得到值的。但是json得不到。。。。求助
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
这个json格式可以转换成类似 { id : "2", favoree : "测试2" } 这样子么?就是json的键值的键不显示成带双引号
我也感觉是最基本的。但是事实却是不尽人意啊。主要代码如下:
public String getPayoutJson() throws IOException{
HttpServletResponse response = ServletActionContext.getResponse();
response.setContentType("text/javascript;charset=utf-8");
response.setCharacterEncoding("utf-8");
List<Accounts> payouttList = accountServiceImp.getPayouts(AccountType.payout);
Accounts account = payouttList.get(0); //得到的account里面已经包含了关联的Users类信息。
//this.requestMap.put("payoutList", payouttList);
this.requestMap.put("payoutList", account);
ObjectMapper mapper = new ObjectMapper();
try {
String payoutJson = mapper.writeValueAsString(payouttList); //但是。在得到的json中没有对应的Users信息
response.getWriter().write(payoutJson);
System.out.println(payoutJson);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
return null;
}
json如下。就是没有Users的信息啊。。。
[{"id":"1","favoree":"测试","remark":"松岛枫","moneyCount":22.0,"accountChangeDate":"2014-12-10 00:00","accountType":"payout","createDate":"2014-12-31 00:00","updateDate":null,"flag":true},
{"id":"2","favoree":"测试2","remark":"测试2","moneyCount":33.0,"accountChangeDate":"2015-01-09 00:00","accountType":"payout","createDate":"2015-01-03 00:00","updateDate":null,"flag":true}]
我觉得这种bean转换应该是基本的,jackson没这么弱吧,贴个代码看看
能不能看清问题,好好给个答复啊
说明:本人使用的是jackson实现把bean转换成json字符串的。。。。
fastjson,gson,jackson等等