2014-04-15 43 views
-4

这是我的servlet代码请检查代码并告诉我为什么会出现此错误?

List<Group> list= dao.findgroup(user); 
     JSONObject json=(JSONObject) JSONSerializer.toJSON(list); 
     ServletResponse response=ActionContext.getServletResponse(); 
     response.setContentType("text/JSON"); 
     PrintWriter out=response.getWriter(); 
     out.println(json); 
     out.close(); 

//这是我的jQuery代码

$.get("viewgroup.process",function(data){ 
     var use=$.parseJSON(data); 
     $(use).each(function(i,v) 
     { 

     var det="<tr><td>"+v.value+"</td><td>"+v.description+"</td><td>"+v.code+"</td><td>"+v.status+"</td><td><a href='#'>reset code</a></td><td><a href='#'>change status</a></td></tr>"; 
     $(det).appendTo("#tablebody"); 
     }); 

现在我的问题是,当我发送该请求,并得到一个列表作为JSON对象,当我使用方法parseJSON它给了我错误:

SyntaxError: JSON.parse: unexpected character

任何一个可以告诉我,为什么这个错误呢?

+0

我有一个列表,并使用jsonserlializer已转换成JSONObject的?AMD刈其现在的工作?任何方法可行,为什么它不工作 – user3380123

回答

0

很肯定使用$.getdata参数已经是一个JavaScript对象(而不是一个JSON字符串),所以无需再次对其进行分析:

$.get("viewgroup.process",function(data){ 
    var use = data;//or just use data directly rather that a new variable called use 
    $(use).each(function(i,v) 
    { 
     var det="<tr><td>"+v.value+"</td><td>"+v.description+"</td><td>"+v.code+"</td><td>"+v.status+"</td><td><a href='#'>reset code</a></td><td><a href='#'>change status</a></td></tr>"; 
     $(det).appendTo("#tablebody"); 
    }); 
    //rest of code... 
}); 
+0

为什么数据参数是当我发送一个JSON对象作为响应JavaScript对象? – user3380123

+1

因为那个JQuery人员如何决定它应该工作。另外,没有JSON对象这样的事情,JSON意味着JavaScript Object Notation,并且基本上只是一个字符串。 JQuery'$ .get'被实现来为你解析那个字符串,所以你可以使用它更容易 – musefan

相关问题