JSON.parse() 意外令牌错误
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/26334964/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
JSON.parse() unexpected token error
提问by Kanishka
I am getting unexpected tokenerror when trying to parse this JSON string
unexpected token尝试解析此 JSON 字符串时出现错误
$scope.feeds = JSON.parse('[{"id":"212216417436_10152811286407437","from":{ "category":"Movie","name":"The Lord of the Rings Trilogy","id":"212216417436"},"story":"The Lord of the Rings Trilogy shared The Hobbit\'s photo.","picture":"https://fbcdn-sphotos-c-a.akamaihd.net/hphotos-ak-xaf1/v/t1.0-9/s130x130/1912397_736719376363670_7288336626443028501_n.jpg?oh=a7e83093f61fafa7909ff84263f989e4&oe=54B4481D&__gda__=1420472696_dbd6462629a00e218c849c5ed7b49c44","link":"https://www.facebook.com/TheHobbitMovie/photos/a.291674244201521.63650.160617097307237/736719376363670/?type=1","name":"Timeline Photos","caption":"\"I have the only right.\" \n\nWhat is your favorite Thorin quote from #TheHobbit?","properties":[ { "name":"By","text":"The Hobbit","href":"https://www.facebook.com/TheHobbitMovie?ref=stream"}],"icon":"https://fbstatic-a.akamaihd.net/rsrc.php/v2/yD/r/aS8ecmYRys0.gif","actions":[ { "name":"Comment","link":"https://www.facebook.com/212216417436/posts/10152811286407437"},{ "name":"Like","link":"https://www.facebook.com/212216417436/posts/10152811286407437"}],"privacy":{ "value":""},"type":"photo","status_type":"shared_story","object_id":"736719376363670","application":{ "name":"Photos","id":"2305272732"},"created_time":"2014-10-12T21:35:41+0000","updated_time":"2014-10-12T21:37:17+0000"},{ "id":"21785951839_10152794856921840","from":{ "category":"App page","name":"9GAG","id":"21785951839"},"message":"Must NOT let my girlfriend see this!\nhttp://9gag.tv/p/a9OrlY?ref=fbl9\n\nWatch more awesome videos on your phone:\nAndroid ? http://goo.gl/Rbi9FP\niPhone/iPad ? http://goo.gl/NFMm9p","picture":"https://fbexternal-a.akamaihd.net/safe_image.php?d=AQCee84KqIBIdnIX&w=158&h=158&url=http%3A%2F%2Fd1d4324mp0stc8.cloudfront.net%2Fmedia%2Fphoto%2FpPgXmO5QJ_600w_v1.jpg","link":"http://9gag.tv/p/a9OrlY?ref=fbl9","name":"This \"Marry Me\" Lip-Sync Proposal Is So Touching And Amazing | 9GAG.tv","caption":"9gag.tv","description":"This sets the bar pretty high!","icon":"https://fbstatic-a.akamaihd.net/rsrc.php/v2/yD/r/aS8ecmYRys0.gif","actions":[ { "name":"Comment","link":"https://www.facebook.com/21785951839/posts/10152794856921840"},{ "name":"Like","link":"https://www.facebook.com/21785951839/posts/10152794856921840"}],"privacy":{ "value":""},"type":"link","status_type":"shared_story","created_time":"2014-10-12T21:15:00+0000","updated_time":"2014-10-12T21:15:46+0000","shares":{ "count":160}}]');
Expanded string object:
扩展字符串对象:
{
"id":"212216417436_10152811286407437",
"from":{
"category":"Movie",
"name":"The Lord of the Rings Trilogy",
"id":"212216417436"
},
"story":"The Lord of the Rings Trilogy shared The Hobbit\'s photo.",
"picture":"https://fbcdn-sphotos-c-a.akamaihd.net/hphotos-ak-xaf1/v/t1.0-9/s130x130/1912397_736719376363670_7288336626443028501_n.jpg?oh=a7e83093f61fafa7909ff84263f989e4&oe=54B4481D&__gda__=1420472696_dbd6462629a00e218c849c5ed7b49c44",
"link":"https://www.facebook.com/TheHobbitMovie/photos/a.291674244201521.63650.160617097307237/736719376363670/?type=1",
"name":"Timeline Photos",
"caption":"\"I have the only right.\" \n\nWhat is your favorite Thorin quote from #TheHobbit?",
"properties":[
{
"name":"By",
"text":"The Hobbit",
"href":"https://www.facebook.com/TheHobbitMovie?ref=stream"
}
],
"icon":"https://fbstatic-a.akamaihd.net/rsrc.php/v2/yD/r/aS8ecmYRys0.gif",
"actions":[
{
"name":"Comment",
"link":"https://www.facebook.com/212216417436/posts/10152811286407437"
},
{
"name":"Like",
"link":"https://www.facebook.com/212216417436/posts/10152811286407437"
}
],
"privacy":{
"value":""
},
"type":"photo",
"status_type":"shared_story",
"object_id":"736719376363670",
"application":{
"name":"Photos",
"id":"2305272732"
},
"created_time":"2014-10-12T21:35:41+0000",
"updated_time":"2014-10-12T21:37:17+0000"
},
{
"id":"21785951839_10152794856921840",
"from":{
"category":"App page",
"name":"9GAG",
"id":"21785951839"
},
"message":"Must NOT let my girlfriend see this!\nhttp://9gag.tv/p/a9OrlY?ref=fbl9\n\nWatch more awesome videos on your phone:\nAndroid ? http://goo.gl/Rbi9FP\niPhone/iPad ? http://goo.gl/NFMm9p",
"picture":"https://fbexternal-a.akamaihd.net/safe_image.php?d=AQCee84KqIBIdnIX&w=158&h=158&url=http%3A%2F%2Fd1d4324mp0stc8.cloudfront.net%2Fmedia%2Fphoto%2FpPgXmO5QJ_600w_v1.jpg",
"link":"http://9gag.tv/p/a9OrlY?ref=fbl9",
"name":"This \"Marry Me\" Lip-Sync Proposal Is So Touching And Amazing | 9GAG.tv",
"caption":"9gag.tv",
"description":"This sets the bar pretty high!",
"icon":"https://fbstatic-a.akamaihd.net/rsrc.php/v2/yD/r/aS8ecmYRys0.gif",
"actions":[
{
"name":"Comment",
"link":"https://www.facebook.com/21785951839/posts/10152794856921840"
},
{
"name":"Like",
"link":"https://www.facebook.com/21785951839/posts/10152794856921840"
}
],
"privacy":{
"value":""
},
"type":"link",
"status_type":"shared_story",
"created_time":"2014-10-12T21:15:00+0000",
"updated_time":"2014-10-12T21:15:46+0000",
"shares":{
"count":160
}
}
回答by Nishad K Ahamed
verify your json string. If it is ok try this:
验证您的 json 字符串。如果没问题,试试这个:
var jsonStr="your json string";
var json=JSON.stringify(jsonStr);
json=JSON.parse(json)
回答by Amgad
When you're typing a string in javascript, the \ is treated as escaping character, while you need it in your json to actually be a \ and not escaping character.
当您在 javascript 中输入字符串时,\ 被视为转义字符,而您在 json 中需要它实际上是一个 \ 而不是转义字符。
You need to change the \"to \\"and \nto \\n, while keeping the \'because it is already an escaping character and it should be parsed okay
您需要更改\"to\\"和\nto \\n,同时保留 the\'因为它已经是一个转义字符,应该可以正常解析

