2015-01-17 4 views
2

Когда я утешаю протоколирует возврата данных выглядит примерно так:«Неожиданный маркер {» при использовании jquery.parsejson()

returnData = 
"{"requests":[{"region": "NA","message": "test","monster": "For Fun", 
"roomNumber" : "", "password" : "", "HR" : ""} 
{"region": "NA","message": "test","monster": "For Fun", "roomNumber" : "", 
"password" : "", "HR" : ""} 
]}" 

Когда я пытаюсь jQuery.parseJSON(returnData) он возвращает ошибку неожиданной лексемы {

Я не уверен, что должно произойти. Любые идеи были бы замечательными! Благодаря

+0

А? Это даже не действительный JavaScript ... Кроме того, jQuery автоматически анализирует ответы JSON для вас. Вам не нужно это делать самостоятельно. Совет. Используйте http://jsonlint.com/ для проверки действительности JSON. И что еще более важно: используйте подходящий JSON-сериализатор на стороне сервера, я готов поспорить, что вы являетесь текущим зданием make-believe JSON путем конкатенации строк. Не делай этого. – Tomalak

+1

кажется, что ваш json недействителен. – RE350

ответ

2

Это

{"region": "NA","message": "test","monster": "For Fun", 
"roomNumber" : "", "password" : "", "HR" : ""} 

должен иметь запятую после }, чтобы один объект был отделен от другого:

{"region": "NA","message": "test","monster": "For Fun", "roomNumber" : "", 
"password" : "", "HR" : ""} 

Как это, не является допустимым json.

Вы можете проверить это, используя this валидатор. Используя этот валидатор для следующих JSON

{ 
    "requests": [ 
     { 
      "region": "NA", 
      "message": "test", 
      "monster": "For Fun", 
      "roomNumber": "", 
      "password": "", 
      "HR": "" 
     }, 
     { 
      "region": "NA", 
      "message": "test", 
      "monster": "For Fun", 
      "roomNumber": "", 
      "password": "", 
      "HR": "" 
     } 
    ] 
} 

У меня это есть.

1

есть "" отсутствует:

{"requests": [{ 
    "region": "NA", 
    "message ": "test", 
    "monster": "For Fun", 
    "roomNumber": "", 
    "password": "", 
    "HR": "" 
}, { 
    "region": "NA", 
    "message": "test", 
    "monster": "For Fun", 
    "roomNumber": "", 
    "password": "", 
    "HR": "" 
}]} 
+1

Спасибо, что я даже не заметил. Мне не хватало запятой между моими объектами. – jshill103

0

Ваш JSON недействителен. Попробуй это.

JSON

{ 
"requests": [{ 
     "region": "NA", 
     "message": "test", 
     "monster": "For Fun", 
     "roomNumber": "", 
     "password": "", 
     "HR": "" 
    }, 
    { 
     "region": "NA", 
     "message": "test", 
     "monster": "For Fun", 
     "roomNumber": "", 
     "password": "", 
     "HR": "" 
    }] 
} 
+0

правильный ответ, но менее очевидно, что это была ошибка запятой – jshill103

+0

[Немного справки в следующий раз] (http://jsonlint.com/) – Damon

Смежные вопросы