NutzCN Logo
问答 nutz mvc json只输出一层
发布于 3089天前 作者 wangyue1104 1676 次浏览 复制 上一个帖子 下一个帖子
标签: json mvc

module 代码 :
@At({"/index"})
@Ok("json:full")
@GET
public APIResult schedulerInfo() {
try {
SchedulerModel schedulerModel = quartzManager.getSchedulerInfo();
return asSuccess(schedulerModel);
} catch (SchedulerException e) {
e.printStackTrace();
return asError("error");
}
}
返回实体定义
public class APIResult {
private Integer code ;
private String message ;
private T result ;

请求返回数据
{
"code": "200",
"message": "null",
"data": "com.ly.tcbs.quartz.manager.model.quartz.SchedulerModel@260ffc68"
}

最后的data不能递归输出
请问什么原因 ,spring mvc 是没问题的

2 回复

不太对劲吧, code理应输出数值的, 但输出为字符串
我的测试代码如下,

APIResult类完整代码

package net.wendal.nutzbook.bean.demo;

public class APIResult {
	
	private Integer code;
	private String message;
	private Object result;
	
	public Integer getCode() {
		return code;
	}
	public void setCode(Integer code) {
		this.code = code;
	}
	public String getMessage() {
		return message;
	}
	public void setMessage(String message) {
		this.message = message;
	}
	public Object getResult() {
		return result;
	}
	public void setResult(Object result) {
		this.result = result;
	}
}

testcase

@Test
	public void test_json_output() {
		APIResult re = new APIResult();
		re.setCode(200);
		re.setMessage("null");
		re.setResult(new NutMap());
		System.out.println(Json.toJson(re));
	}

输出

{
   "code" :200,
   "message" :"null",
   "result" :{
   }
}

result属性的类型不是关键,关键是code应该输出数值(200),而不应该是"200"

声明一下, @Ok("json:full") 与 Json.toJson的结果是等价的.

所以呢, 最大可能性的是APIResult有个toJson方法

的确项目里toJson方法;多人开发的项目,不知道什么时候加的,转用nutz这么巧冲突了

添加回复
请先登陆
回到顶部