在元素列表解析JSON后丢失]

时间:2009-04-26 14:41:37

标签: javascript json parsing

执行:

$.post(
"/url/to/method",
{ },
function(data){
    var obj2 = eval("("+$(data).children()+")");
    // OR var obj = $.evalJSON($($(data).children())); // Jquery-json
    $body = $("#AAA");
    $body.html(obj.fied);
},
 "xml"
);

虽然在firebug中的元素列表“(第5行或第6行)错误后变成”缺失“。方法的JSON输出已通过jsonlint.com /

验证

可能很明显,但请我是围绕AJAX / JSON的新手。感谢

4 个答案:

答案 0 :(得分:14)

可能发生的是你的$ .post调用已经返回一个JSON对象。 jQuery将尝试自动检测JSON并为您解析它。当您在像这样的JSON对象上调用eval时,您会看到此错误。偷偷摸摸的!只需按原样使用数据对象。

答案 1 :(得分:5)

使用JSON.parse方法,或确保在将其传递给eval之前在您的parens旁边添加一个空格...

eval(" (" + data + ") ");

答案 2 :(得分:0)

您是在.NET 2.0中编写的吗?如果是这样,请尝试将数据构建到查询字符串中,而不是传递JSON对象。

实施例: VAR1 =阿尔玛&安培; VAR2 =用户

其中“var1”和“var2”是您的webmethod所期望的参数的名称。使用帖子传递此信息。数据:{querystring} 我在向2.0中的Web服务传递JSON时遇到了问题。

祝你好运

答案 3 :(得分:0)

事实证明,jQuery将尝试确定结果是否为JSON并自动解析它,但在这种情况下,数据已经是JavaScript对象而不是等待解析的JSON字符串。因此,您可以按原样使用此对象,而不是使用eval()和JSON.parse。