Как получить доступ к этому значению JSON?

Я довольно плохо знаком с JavaScript и не знаю, как получить доступ к определенному значению в строке JSON. У меня был lsit этих объектов, и я сделал доступ к ним, просматривая с$.each функция. Но это не похоже на работу здесь. Я пытался сделатьalert(data.type); но это дает мнеundefined переменная.

TL; DR:
Это строка JSON, которую я получаю через AJAX. Как я могу получить доступtype значение в JavaScript, используя jQuery?

<code>{
    "parent_id": "100003381460677",
    "type": "post",
    "title": "a",
    "body": "b",
    "date_normal": "01 May 2012"
}
</code>
 Felix Kling01 мая 2012 г., 13:32
Сначала нужно проанализировать JSON (явно или неявно, см. / Stackoverflow.com вопросы / 8951810 / ...). Тогда у вас есть объект JavaScript, который, я полагаю, вы знаете, как работать с ним.
 stan01 мая 2012 г., 13:43
@ FelixKling Да, я не знал, что мне нужно разобрать это. Спасибо, теперь это работает.

Ответы на вопрос(5)

что вы используете это в качестве обратного вызова ajax:

function(data){ ... }

Вы можете получить к нему доступ с точечной нотацией:

data.type

Решение Вопроса

parseJSON помогает ва

{"name":"John"}');
alert( obj.name );
 stan01 мая 2012 г., 13:32
Правильно, я использовал плагин, который возвращал его как строку, а не JSON, поэтому он не определен. Когда я проанализировал строку на допустимый JSON, он работает сейчас. Благодарность

что эти данные JSON поступают из вызова AJAX, убедитесь, что вы указали правильный тип данных json) если ваш сервер не настроен для правильной отправкиContent-Type заголовок ответа:

$.ajax({
    url: '/foo',
    type: 'POST',
    dataType: 'json',
    success: function(result) {
        alert(result.type);
    }
});

Затем аргумент, переданный обратному вызову success, уже будет представлять объект javascript (десериализованный jQuery автоматически из строки JSON ответа сервера). И когда у вас есть объект JavaScript, вы можете напрямую получить доступ к его свойствам по имени. В примере, который вы показали, это простой объект, а не массив. Таким образом, вы можете напрямую получить доступ к свойствам по имени.

Если вы используете$.getJSON (это автоматически проанализирует ответ AJAX как объект JSON), затем

$.getJSON("<url>", function(data, status) {
     $.each(data, function(i, elem) {
          console.log(elem.type);
     });
});

Обратите внимание, что первый аргумент для обратного вызова в$.each - это индекс в массиве, а не сам элемент (это второй аргумент).

Ваш ответ на вопрос