Javascript 在AJAX调用之后,我在PHP中生成了奇怪的JSON输出

Javascript 在AJAX调用之后,我在PHP中生成了奇怪的JSON输出,javascript,jquery,ajax,json,Javascript,Jquery,Ajax,Json,我在这方面有点生疏,完全搞砸了。我有一个PHP结果集,通过该结果集进行如下迭代: $rows = array(); while($r = mysql_fetch_assoc($result)) { $rows[] = $r; } echo json_encode($rows); 然后我在jQuery代码中输出如下: success: function(json) { $('.suc

我在这方面有点生疏,完全搞砸了。我有一个PHP结果集,通过该结果集进行如下迭代:

    $rows = array();
    while($r = mysql_fetch_assoc($result))
    {
        $rows[] = $r;
    }

    echo json_encode($rows);
然后我在jQuery代码中输出如下:

success: function(json)
            {
                $('.success').fadeIn(200).show();
                $('.error').fadeOut(200).hide();

                // Here can update the right side of the screen with the newly entered information
        alert (json);

        var ob = $.parseJSON(json);

            alert (ob.creator_member_id);
            alert (ob.problem_title);
            alert (ob.problem_description);
            alert (ob.problem_date);


            }
但是var ob=$.parseJSON(json)上有一个错误;似乎是线。我的JS控制台出现以下错误:

Uncaught TypeError: Object function (D,E){return new n.fn.init(D,E)} has no method 'parseJSON'
这意味着什么?我该如何解决


谢谢

如果您通过jQuery ajax调用获得JSON结果,您不需要解析结果JSON,jQuery会帮您完成

只需指定

dataType: 'json'
[http://api.jquery.com/jQuery.ajax/],并且您的
success
处理程序将具有已解析的对象


如果您想解析JSON,请尝试添加到您的项目中。然后您必须调用
JSON.parse(JSON)

我也是Jquery新手。eval只是简单的JS,它适合我的需要。我看不出这段代码有什么坏处,但当然也有可能在响应中注入坏代码。也许这不是很好的练习。例如,可以将其用于反向shell。

您可以使用eval解析Json。eval(““+JSON+”)@Jitamaro不太熟悉jQuery世界。这看起来怎么样?我投票反对aval,尽管它在早些时候非常流行。安全的方法是使用JSON.parse,见下文。JIC,对于@Jitamaro的建议,它不是jQuery,而是简单的JSI,实际上只需要提取json的值。最好的方法是什么?我的意思是…有n行数据..我应该如何最好地循环这些数据并在其中一个div中显示它们?1)按照我的建议使用dataType:json。然后你的成功函数会得到一个普通的js变量2)你说这是一个数组?以正常的方式对它进行迭代(var i=0,l=res.length;i顺便说一句,如果有帮助,我正在这个测试页面上尝试:-我正在输出我试图获取的数据的警报,但不知何故它不起作用…现在要用循环尝试您的解决方案….警报(json)//var ob=$.parseJSON(json);警报(“1”);警报(ob.creator\u member\u id);-您对
ob
初始化进行了注释,但随后尝试访问其属性。