2015-08-21 5 views
0

Я запускаю функцию Javascript в последней версии Mozilla, которая получает строку, которую я хочу преобразовать в объект JSON. Конверсия, похоже, терпит неудачу.Функции разбора JSON не обрабатываются

Строка генерируется на стороне сервера в функции Java:

  result = "[{ \"userID\": 1 \"firstName\":\"John\" \"lastName\":\"Sheridan\" }{ \"userID\": 2 \"firstName\":\"Michael\" \"lastName\":\"Geribaldi\" }]"; 

(обратите внимание, что я пытаюсь вернуть массив значений для списка).

код на стороне клиента является Ajax обратного вызова показано ниже:

var successFunc = function(data, textStatus, jqXHR) 
{ 
    alert("Data: "+data); 

    var obj = $.parseJSON(data); 
    alert("Object: "+obj); 
} 

По-видимому, данные поступают обратно в функцию обратного вызова и отображается в виде строки, но парсер JSON не удается, потому что второе предупреждение не появляется. Я уверен, что что-то не так с моей строкой, но мне трудно понять, что. Отладчик ничего мне не говорит, я просто вижу тихий провал.

Я также попытался использовать это с помощью функции JSON.parser(). Я вижу то же самое. Я где-то ошибаюсь. Может ли кто-нибудь сказать мне, где?

+0

Ваша строка не в правильном формате .... отсутствует ',' после '\" userID \ ": 1' и' \ "firstName \": \ "John \" ' –

ответ

2

Ваш JSON не действует, вам не хватает запятой

Для того, чтобы разобрать ваш JSON должен быть, как этот

[ 
{ "userID": 1, "firstName":"John", "lastName":"Sheridan" }, 
{ "userID": 2, "firstName":"Michael", "lastName":"Geribaldi" } 
] 
1

JSON это формат, в котором данные в key:value пар separeted по , и ключом и значение заключены в double quotes, где объекты заключены в {} фигурные скобки и массив заключены в []. Надеюсь, у вас есть ваша ошибка, когда ваш json отсутствует.

"[{ 
    \"userID\": 1 , 
    \"firstName\":\"John\", 
    \"lastName\":\"Sheridan\", 
    }, 
    { 
    \"userID\": 2 , 
    \"firstName\":\"Michael\", 
    \"lastName\":\"Geribaldi\" }]"