12

I am getting unexpected token error when trying to parse this JSON string

$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
   }
}
brasofilo
  • 25,496
  • 15
  • 91
  • 179
Kanishka
  • 1,097
  • 5
  • 20
  • 37

2 Answers2

30

verify your json string. If it is ok try this:

var jsonStr="your json string";
var json=JSON.stringify(jsonStr);
json=JSON.parse(json)
Nishad K Ahamed
  • 1,374
  • 15
  • 25
  • 7
    That converts it from a string of JSON into a string of a string of JSON and then back to a string of JSON. That won't successfully parse JSON and is equivalent to `var json="your json string";` – Quentin May 01 '15 at 07:27
  • that is not true. stringify just converts the input data to JSON text and stores that JSON text in a string. – Nishad K Ahamed Nov 02 '16 at 09:41
2

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.

You need to change the \" to \\" and \n to \\n, while keeping the \' because it is already an escaping character and it should be parsed okay

Amgad
  • 345
  • 3
  • 9
  • 1
    The double-slashes fixed my issue. It's frustrating but I guess it makes sense. You couldn't have `\"` be an escaped character but not consider `\r` to be one. – TastyWheat Jun 15 '18 at 21:55