【问题标题】:Trying to parse JSON with underscore (Unexpected token on Chrome)尝试使用下划线解析 JSON(Chrome 上出现意外标记)
【发布时间】:2013-10-25 21:55:40
【问题描述】:

您好,我正在尝试了解 underscore.js

我有一个json文件如下:

[
{
    "name":"rocky",
    "last-updated": "Yesterday", 
    "age":"32"
},
{
    "name":"annie",
    "last-updated": "Today",
     "age":"31"
}
]

还有一个javascript函数:

    function getNames() {
        var users = $.ajax({
            url : "users.json",
            async : false
        });

        var names = _.map(JSON.parse(users.responseText),
            function(user) {
                return user.name
            });

        return names;

    }

它在 IE 上运行良好,但在 Chrome 上,它抛出了我:

Uncaught SyntaxError: Unexpected token , 

在这一行:

var names = _.map(JSON.parse(users.responseText),function(user) {return user.name});

据我所知,这个错误是因为试图解析对象而不是 JSON 字符串。我对吗?我该如何解决这个问题?在 IE 上可以用吗?

谢谢!

【问题讨论】:

  • 我认为 json 的左括号和右括号 where {}[] where 数组
  • 那不是下划线那是一个连字符!
  • 避免 - 键中的字符
  • @gwillie:我在 json 文件中将 [] 替换为 {},仍然是同样的错误
  • @meda:你的意思是 _.map ?我相信它的下划线!

标签: javascript html ajax json underscore.js


【解决方案1】:

原来问题出在 url 参数上。

 url : "users.json"
 url: "/users.json"

Chrome 抛出的错误:

Uncaught SyntaxError: Unexpected token , 

经过一个小时的故障排除后,我发现: Chrome 存在缓存 GET 请求的错误。

可以通过设置来修复

cache: false 

在我的 Ajax 调用中!

同时创建一个目录并在 url 上调用该目录似乎可以正常工作。

url : "json/users.json"

感谢那些试图提供帮助的人。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-05
    • 1970-01-01
    • 2019-11-08
    • 1970-01-01
    • 2023-01-21
    相关资源
    最近更新 更多