首页 \ 问答 \ 语法错误JSON.parse ajax.responsetext(Spring,jquery,ajax,gson)(Syntax Error JSON.parse ajax.responsetext (Spring,jquery,ajax,gson))

语法错误JSON.parse ajax.responsetext(Spring,jquery,ajax,gson)(Syntax Error JSON.parse ajax.responsetext (Spring,jquery,ajax,gson))

我使用Netbeans&spring framework4.0.1,没有注释只有普通的模型和视图

当我尝试发送JSON到jsp页面并使用ajax函数回调时,我无法解析响应文本,并给我出现此错误“SyntaxError:JSON.parse:JSON数据的第12行第1列出现意外字符”这是控制器代码

 public ModelAndView contentlistObjective(HttpServletRequest hsr, HttpServletResponse hsr1) throws Exception {
            ModelAndView mv = new ModelAndView("createsettings");
           List<Content> contents = new ArrayList<>();
     //       JSONObject obj = new JSONObject();
           try {
             DriverManagerDataSource dataSource;
            dataSource = (DriverManagerDataSource)this.getBean("dataSource",hsr.getServletContext());
            this.cn = dataSource.getConnection();  
                 Statement st = this.cn.createStatement();
                 String objectiveid = null;
                    objectiveid = hsr.getParameter("seleccion3");         
              ResultSet rs1 = st.executeQuery("SELECT name,id FROM         public.content where public.content.id IN (select public.objective_content.content_id from public.objective_content where public.objective_content.objective_id = "+objectiveid+")");

           while (rs1.next())
            {
     Content eq = new Content();
     contents.add(eq);
//   obj.put("name", rs1.getString("name"));

            }

        } catch (SQLException ex) {
            System.out.println("Error leyendo contents: " + ex);
        }
       Gson gson = new GsonBuilder().setPrettyPrinting().create();
       String json = gson.toJson(contents);
       hsr1.setContentType("application/json");

//      System.out.print(json);
//      json = json.replaceAll("\n", "");
//      json = json.trim();
//      json = json.substring(1,json.length()-1);
//      json = json.replace("\\","");
       mv.addObject(json);
        return mv;
    }   

当我调试我正在返回的JSON有这个值[{“name”:“newspaper”},{“name”:“novel”}]下面是JSP代码

function comboSelectionObjective()
            {
                if (window.XMLHttpRequest) //mozilla
                {
                    ajax = new XMLHttpRequest(); //No Internet explorer
                } else
                {
                    ajax = new ActiveXObject("Microsoft.XMLHTTP");
                }             

                ajax.onreadystatechange = funcionCallBackContent;
             var seleccion3 = document.getElementById("objective").value;
                ajax.open("GET", "createsetting.htm?select=contentlistObjective&seleccion3=" + seleccion3, true);
                ajax.send("");
}
function funcionCallBackContent()
            {
                if (ajax.readyState === 4) {
                    if (ajax.status===200){
                   var data =JSON.parse(ajax.responseText);
                 console.log(data);
                 }

我使用的是gson库,我之前使用Json简单,但它给了完全相同的错误,我也试图替换所有的转义字符,并没有工作

是不是使用注释的问题?

感谢你的帮助


I am using Netbeans & spring framework4.0.1,without annotation only normal model&view

When i try to send a JSON to the jsp page & using ajax function call back , i am unable to parse the response text, gives me this error "SyntaxError: JSON.parse: unexpected character at line 12 column 1 of the JSON data" This is the controller code

 public ModelAndView contentlistObjective(HttpServletRequest hsr, HttpServletResponse hsr1) throws Exception {
            ModelAndView mv = new ModelAndView("createsettings");
           List<Content> contents = new ArrayList<>();
     //       JSONObject obj = new JSONObject();
           try {
             DriverManagerDataSource dataSource;
            dataSource = (DriverManagerDataSource)this.getBean("dataSource",hsr.getServletContext());
            this.cn = dataSource.getConnection();  
                 Statement st = this.cn.createStatement();
                 String objectiveid = null;
                    objectiveid = hsr.getParameter("seleccion3");         
              ResultSet rs1 = st.executeQuery("SELECT name,id FROM         public.content where public.content.id IN (select public.objective_content.content_id from public.objective_content where public.objective_content.objective_id = "+objectiveid+")");

           while (rs1.next())
            {
     Content eq = new Content();
     contents.add(eq);
//   obj.put("name", rs1.getString("name"));

            }

        } catch (SQLException ex) {
            System.out.println("Error leyendo contents: " + ex);
        }
       Gson gson = new GsonBuilder().setPrettyPrinting().create();
       String json = gson.toJson(contents);
       hsr1.setContentType("application/json");

//      System.out.print(json);
//      json = json.replaceAll("\n", "");
//      json = json.trim();
//      json = json.substring(1,json.length()-1);
//      json = json.replace("\\","");
       mv.addObject(json);
        return mv;
    }   

When i debug json that i am returning has this value [ { "name": "newspaper" }, { "name": "novel" } ] Below is the JSP code

function comboSelectionObjective()
            {
                if (window.XMLHttpRequest) //mozilla
                {
                    ajax = new XMLHttpRequest(); //No Internet explorer
                } else
                {
                    ajax = new ActiveXObject("Microsoft.XMLHTTP");
                }             

                ajax.onreadystatechange = funcionCallBackContent;
             var seleccion3 = document.getElementById("objective").value;
                ajax.open("GET", "createsetting.htm?select=contentlistObjective&seleccion3=" + seleccion3, true);
                ajax.send("");
}
function funcionCallBackContent()
            {
                if (ajax.readyState === 4) {
                    if (ajax.status===200){
                   var data =JSON.parse(ajax.responseText);
                 console.log(data);
                 }

i am using gson library, i used before it Json simple but it gave exactly the same error also i tried to replace all escape characters and did not work either

Is the problem that i am not using annotations?

Appreciate your help


原文:https://stackoverflow.com/questions/43093916
更新时间:2023-04-24 20:04

最满意答案

假设你想要实际上是pythonic(或者真的,只是没有足够的疯狂来制作100个变量),你可以制作一个list

obj = []
for i in range(100):
    name=input('Your name:')
    obj.append(Person(name))

如果你想在循环之前设置列表的大小,以便你可以用i访问它,你可以做这样的事情

obj = [None] * 100
for i in range(100):
    name=input('Your name:')
    obj[i] = Person(name)

Assuming you want to actually be pythonic (or really, just not insane enough to make 100 variables), you could make a list.

obj = []
for i in range(100):
    name=input('Your name:')
    obj.append(Person(name))

If you want to set the size of your list before your loop so you can access it with i, you can do something like this

obj = [None] * 100
for i in range(100):
    name=input('Your name:')
    obj[i] = Person(name)

相关问答

更多

相关文章

更多

最新问答

更多
  • 获取MVC 4使用的DisplayMode后缀(Get the DisplayMode Suffix being used by MVC 4)
  • 如何通过引用返回对象?(How is returning an object by reference possible?)
  • 矩阵如何存储在内存中?(How are matrices stored in memory?)
  • 每个请求的Java新会话?(Java New Session For Each Request?)
  • css:浮动div中重叠的标题h1(css: overlapping headlines h1 in floated divs)
  • 无论图像如何,Caffe预测同一类(Caffe predicts same class regardless of image)
  • xcode语法颜色编码解释?(xcode syntax color coding explained?)
  • 在Access 2010 Runtime中使用Office 2000校对工具(Use Office 2000 proofing tools in Access 2010 Runtime)
  • 从单独的Web主机将图像传输到服务器上(Getting images onto server from separate web host)
  • 从旧版本复制文件并保留它们(旧/新版本)(Copy a file from old revision and keep both of them (old / new revision))
  • 西安哪有PLC可控制编程的培训
  • 在Entity Framework中选择基类(Select base class in Entity Framework)
  • 在Android中出现错误“数据集和渲染器应该不为null,并且应该具有相同数量的系列”(Error “Dataset and renderer should be not null and should have the same number of series” in Android)
  • 电脑二级VF有什么用
  • Datamapper Ruby如何添加Hook方法(Datamapper Ruby How to add Hook Method)
  • 金华英语角.
  • 手机软件如何制作
  • 用于Android webview中图像保存的上下文菜单(Context Menu for Image Saving in an Android webview)
  • 注意:未定义的偏移量:PHP(Notice: Undefined offset: PHP)
  • 如何读R中的大数据集[复制](How to read large dataset in R [duplicate])
  • Unity 5 Heighmap与地形宽度/地形长度的分辨率关系?(Unity 5 Heighmap Resolution relationship to terrain width / terrain length?)
  • 如何通知PipedOutputStream线程写入最后一个字节的PipedInputStream线程?(How to notify PipedInputStream thread that PipedOutputStream thread has written last byte?)
  • python的访问器方法有哪些
  • DeviceNetworkInformation:哪个是哪个?(DeviceNetworkInformation: Which is which?)
  • 在Ruby中对组合进行排序(Sorting a combination in Ruby)
  • 网站开发的流程?
  • 使用Zend Framework 2中的JOIN sql检索数据(Retrieve data using JOIN sql in Zend Framework 2)
  • 条带格式类型格式模式编号无法正常工作(Stripes format type format pattern number not working properly)
  • 透明度错误IE11(Transparency bug IE11)
  • linux的基本操作命令。。。