gpt4 book ai didi

javascript - jQuery JSON 解析 - 意外的 token 错误

转载 作者:行者123 更新时间:2023-11-29 22:26:56 27 4
gpt4 key购买 nike

我正在尝试使用 Envato API 通过 jQuery 收集一些用户统计信息。我将展示一个示例响应 JSON:

{
"new-files-from-user":[
{
"thumbnail":"http://3.s3.envato.com/files/60560.jpg",
"tags":"",
"user":"collis",
"url":"http://themeforest.net/item/manilla-photoshop-design/22803",
"live_preview_url":"http://2.s3.envato.com/files/60561/1_Home.__large_preview.jpg",
"uploaded_on":"Wed Dec 03 03:32:35 +1100 2008",
"cost":"10.00",
"item":"Manilla Photoshop Design",
"sales":"294",
"rating":"4",
"id":"22803"
},
{
"thumbnail":"http://2.s3.envato.com/files/60223.jpg",
"tags":"clean",
"user":"collis",
"url":"http://themeforest.net/item/black-white-simple-theme/22705",
"live_preview_url":"http://0.s3.envato.com/files/60224/1_home.__large_preview.jpg",
"uploaded_on":"Tue Dec 02 04:01:12 +1100 2008",
"cost":"8.00","item":"Black + White Simple Theme",
"sales":"272","
rating":"4",
"id":"22705"
},
{
"thumbnail":"http://1.s3.envato.com/files/44556.jpg",
"tags":"clean",
"user":"collis",
"url":"http://themeforest.net/item/quik-v1-admin-skin/17314",
"live_preview_url":"http://3.s3.envato.com/files/44557/1_green.__large_preview.jpg",
"uploaded_on":"Fri Sep 05 07:30:24 +1000 2008","cost":"12.00",
"item":"Quik v1 Admin Skin",
"sales":"336",
"rating":"5",
"id":"17314"
},
{"thumbnail":"http://3.s3.envato.com/files/45212.jpg",
"tags":"clean",
"user":"collis",
"url":"http://themeforest.net/item/freshcorp-business-template/17528",
"live_preview_url":"http://3.s3.envato.com/files/45213/1_Homepage.__large_preview.jpg",
"uploaded_on":"Tue Sep 09 06:10:50 +1000 2008",
"cost":"20.00",
"item":"FreshCorp - Business Template",
"sales":"277",
"rating":"4","id":"17528"
},
{"thumbnail":"http://0.s3.envato.com/files/45739.jpg",
"tags":"clean",
"user":"collis",
"url":"http://themeforest.net/item/real-estate-html-template/17732",
"live_preview_url":"http://0.s3.envato.com/files/45740/1_homepage.__large_preview.jpg",
"uploaded_on":"Fri Sep 12 14:22:45 +1000 2008",
"cost":"20.00","item":"Real Estate HTML Template",
"sales":"175",
"rating":"4",
"id":"17732"
}
]
}

这是我的脚本:

<script type="text/javascript">
//this gets JSON data from an url
$.getJSON("http://marketplace.envato.com/api/edge/new-files-from-user:collins,themeforest.json?callback=?",
//this function gets called when data has been recieved
function(data){
//parsing JSON data, line by line(like foreach)
$.each(data['new-items-from-user'], function(i,item){
//puts all titles in our div
$("#test").append(item.item+"<br />");
});
});
</script>
<div id="test"></div>

这是我在 Chrome 控制台中得到的:'Uncaught SyntaxError: Unexpected Token :'(图片 http://imgur.com/8qoqO)。

我不确定我的代码中是否有错误导致了这个问题,但这里有一个 fiddle 可以查看结果:http://jsfiddle.net/wkmDj/

谢谢,马特

最佳答案

在 JSON 响应列表中的第二个对象中,属性名称中间有一个换行符:

"sales":"272","
rating":"4",
"id":"22705"

也许这只是一个转录错误。

edit — 好的,那是转录错误。我认为问题在于您正在与之交谈的网站并没有真正正确地理解 JSONP。它返回的 JSON 看起来不错,但 JSONP 要求返回的 JSON 包含在函数调用中。换句话说,响应应如下所示:

somefunction({"new-items-from-user":[{ ... }]});

它没有这样做,所以当 JSON 被自己评估时,它构成了语法错误,因为 JavaScript 认为前导 {code block 的开始,而不是对象字面量。

查看该 API 的文档,我没有看到任何迹象表明它打算用作 JSONP 服务。看起来他们打算从电话应用程序或网络服务器或类似的东西中使用它,而不是通过 JSONP 从浏览器中的 JavaScript 中使用它。

关于javascript - jQuery JSON 解析 - 意外的 token 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8933174/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com