我正在尝试解析以下形式的 JSON 字符串:
var jsonString = {"body": "{\n \"data\": [\n {\n \"name\": \"{name}\",\n \"id\": \"{id}\"\n },\n {\n \"name\": \"{name}\",\n \"id\": \"{id}\"\n },\n {\n \"name\": \"{name}\",\n \"id\": \"{uid}\"\n },\n {\n \"name\": \"{name}\",\n \"id\": \"{uid}\"\n }\n ],\n \"paging\": {\n \"next\": \"http://graph.facebook.com/{my_uid}/mutualfriends?user={uid_1}&access_token={access_token}&limit=5000&offset=5000&__after_id={last_id}\"\n }\n}"}
使用 jQuery $.each 函数。当我执行下面的代码时,它会按预期解析:
$.each(JSON.parse(jsonString).data,function(index,value){
alert(JSON.stringify(value))
})
我如何需要扩大回调函数的范围。当我尝试使用下面的代码来实现它时。
$.each(JSON.parse(jsonString).data,$.proxy(function(index,value){
alert(JSON.stringify(value))
}),this)
我得到错误
Converting circular structure to JSON
有什么帮助吗?
更新:
更具体地说,我试图解析的来源来自一个休息电话。如果我将 JSON.stringify() 应用于我得到的响应:
[{"code":200,"headers":[{"name":"Access-Control-Allow-Origin","value":"*"},{"name":"Cache-Control","value":"private, no-cache, no-store, must-revalidate"},{"name":"Connection","value":"close"},{"name":"Content-Type","value":"text/javascript; charset=UTF-8"},{"name":"ETag","value":"\"d81f912b1730cdfd1c180d5851d2d22a8c0774c3\""},{"name":"Expires","value":"Sat, 01 Jan 2000 00:00:00 GMT"},{"name":"Pragma","value":"no-cache"}],"body":"{\n \"data\": [\n {\n \"name\": \"{name}\",\n \"id\": \"{ID}\"\n }\n ],\n \"paging\": {\n \"next\": \"{URL}\"\n }\n}"}]
然后我试图解析这个使用: $.each(JSON.parse(jsonString).data,$.proxy(function(index,value){ alert(JSON.stringify(value)) }),this)
并得到错误
Converting circular structure to JSON
如果我使用我们的 $.proxy 它就可以了