net.sf.json.JSONException: A JSONArray text must start with ‘[‘ at character

喜欢ヅ旅行 2022-03-02 03:10 676阅读 0赞

错误背景

后端返回json数据给前端页面报错


错误代码

  1. package cn.com.service;
  2. import java.io.*;
  3. import javax.servlet.http.HttpServletResponse;
  4. import net.*;
  5. import org.*;
  6. import cn.com.bean.User;
  7. @Repository(value="regedit")
  8. @Scope("prototype")
  9. public class Regedit implements ModelDriven<User>{
  10. @Autowired
  11. private SessionFactory sf;
  12. @Autowired
  13. private User user;
  14. @Transactional
  15. public String regedit_user(){
  16. //获取session对象
  17. String toast="用户名已存在,请重新输入";
  18. HttpServletResponse response = ServletActionContext.getResponse();
  19. //设置response输出json便于调试
  20. response.setCharacterEncoding("utf-8");
  21. PrintWriter out;
  22. try {
  23. out = response.getWriter();
  24. JSONArray json=JSONArray.fromObject(toast);
  25. out.write(json.toString());
  26. out.flush();
  27. out.close();
  28. } catch (IOException e) {
  29. // TODO Auto-generated catch block
  30. e.printStackTrace();
  31. }
  32. return "success";
  33. }
  34. public User getModel() {
  35. return user;
  36. }
  37. }

报错的原因

把一个object类型的变成json数组的形式,必须要有[]这个标志存在

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3NTkxNjM3_size_16_color_FFFFFF_t_70

解决方案

1、在字符串里面添加[]进去watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3NTkxNjM3_size_16_color_FFFFFF_t_70 1

2、用JSONObject

JSONArray json=JSONArray.fromObject(toast);
out.write(json.toString());

把改成

  1. JSONObject json=new JSONObject();
  2. json.put("tom", toast);

发表评论

表情:
评论列表 (有 0 条评论,676人围观)

还没有评论,来说两句吧...

相关阅读