2014-01-19 5 views
2

Ajax называютКак читать JSON строку [JQuery]

$("#day").datepicker({ 
    onSelect: function(request) { 
     $.ajax({ 
      type: "POST", 
      url: '${pageContext. request. contextPath}/url.htm', 
      data: JSON.stringify({ 
       id: '${someId}' 
      }), 
      dataType: 'json', 
      contentType: "application/json;charset=utf-8", 
      success: function (response) { 
       if(response.b === true) { 
        $("#fruit").val(response.a); 
       } 
      } 
     }).fail(function(xhr, status, error){ 
      console.log('error:' + status + ':' + error + ':' + xhr.responseText); 
     }); 
    } 
    }); 

ответ Строка из ajax вызова, как показано ниже

{ 
    "a": "apple", 
    "b": true 
} 

Я пытался читать его с помощью var json = $.parseJSON(response); и я получаю исключение, Uncaught SyntaxError: Unexpected token o

console.log(response); показывает данные на консоли как

Object { 
    "a": "apple", 
    "b": true 
} 

Я хочу получить значение «a» и «b». Как это можно достичь?

+4

нет необходимости разобрать его снова, используйте ' response.a' и 'response.b' для доступа к значению a и b –

+0

' response' - это не строка, которая кажется. Сделайте 'typeof response', и вы увидите, что это уже объект, созданный автоматически из json-ответа. – SoonDead

+0

Чем это не строка. Вы можете получить доступ к его свойствам прямо так же, как сказал @PranavRam. Или, альтернативно, вы можете использовать оператор индексатора следующим образом: 'response [" a "]' и 'response [" b "]'. – SoonDead

ответ

2

Это уже в формате JSON. вам больше не нужно его разбирать.

использовать так.

response.a; 
    response.b; 
1

проверить это:

var ajaxResult = '{"a":"apple","b": true}'; 

var json= $.parseJSON(ajaxResult); 

console.log(json.a); 
2

Пожалуйста, ознакомьтесь с его Я сделал некоторые изменения :) если любой запрос, пожалуйста, спросите меня

$("#day").datepicker({ 
     onSelect: function(request) { 
      $.ajax({ 
       type: "POST", 
       url: '${pageContext. request. contextPath}/url.htm', 
       data: JSON.stringify({ 
        id: '${someId}' 
       }), 
       dataType: 'json', 
       success: function (response) { 
        if(response['b'] === true) { 
         $("#fruit").val(response['a']); 
        } 
       } 
      }).fail(function(xhr, status, error){ 
       console.log('error:' + status + ':' + error + ':' + xhr.responseText); 
      }); 
     } 
     }); 
+0

С JSON datatType, попробовал обе формы: 'console.log (response ['d']);' и 'console.log (response.d);'; Все еще не определено –

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