错误背景
后端返回json数据给前端页面报错
错误代码
package cn.com.service;
import java.io.*;
import javax.servlet.http.HttpServletResponse;
import net.*;
import org.*;
import cn.com.bean.User;
@Repository(value="regedit")
@Scope("prototype")
public class Regedit implements ModelDriven<User>{
@Autowired
private SessionFactory sf;
@Autowired
private User user;
@Transactional
public String regedit_user(){
//获取session对象
String toast="用户名已存在,请重新输入";
HttpServletResponse response = ServletActionContext.getResponse();
//设置response输出json便于调试
response.setCharacterEncoding("utf-8");
PrintWriter out;
try {
out = response.getWriter();
JSONArray json=JSONArray.fromObject(toast);
out.write(json.toString());
out.flush();
out.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return "success";
}
public User getModel() {
return user;
}
}
报错的原因
把一个object类型的变成json数组的形式,必须要有[]这个标志存在
解决方案
1、在字符串里面添加[]进去
2、用JSONObject
JSONArray json=JSONArray.fromObject(toast);
out.write(json.toString());
把改成
JSONObject json=new JSONObject();
json.put("tom", toast);