Prototypejs .evalJSON没有返回对象

时间:2010-04-05 17:53:42

标签: javascript json prototypejs

我有这个JSON(根据JSONLint验证):

[
{
    "BugCount":"2",
    "BugTitle":"C:\\INETPUB\\WWWROOT\\CLUBREADY2\\TRAINERS\\../Connections/LTC.asp",
    "ErrLine":"141",
    "BugID":"702"
},
{
    "BugCount":"1",
    "BugTitle":"/admin/ajax_logagreementsig.asp",
    "ErrLine":"0",
    "BugID":"1322"
},
]

然而,当我在其上运行data = json.evalJSON时,我遇到了一些问题。 如果我运行.evalJSON(true)(清理),则在原型中发生错误,说“json”未定义。如果我执行.evalJSON()。

,也会发生同样的情况

如果我没有括号的.evalJSON,那么数据只是一个空对象,不会发生错误。

我的JSON有问题吗?

2 个答案:

答案 0 :(得分:1)

这只是一个javascript对象,你不需要评估任何东西来实现它。

var data = [
 {
    "BugCount":"2",
    "BugTitle":"C:\\INETPUB\\WWWROOT\\CLUBREADY2\\TRAINERS\\../Connections/LTC.asp",
    "ErrLine":"141",
    "BugID":"702"
 },
 {
    "BugCount":"1",
    "BugTitle":"/admin/ajax_logagreementsig.asp",
    "ErrLine":"0",
    "BugID":"1322"
 }
];

上面会很好,你的data var会解析为两个项目的数组。请注意,我删除了该列表中的尾随逗号,因为它会在IE中导致第三个空值项,但在大多数其他浏览器中不会。

答案 1 :(得分:0)

我发现了我的问题,这是一个愚蠢的事情。 我不小心在我的.aspx页面上留下了返回JSON的默认HTML,所以在我试图评估为JSON的字符串中有一个完整的“”构建的网页。