0

我对 JavaScript 很陌生,我不知道如何访问 JSON 字符串中的某些值。我有这些对象的 lsit 并且我确实通过$.each函数循环访问它们。但它似乎在这里不起作用。我试过这样做,alert(data.type);但它给了我undefined变量。

TL;DR:
这是我通过 AJAX 获得的 JSON 字符串。如何type使用 jQuery 访问 JavaScript 中的值?

{
    "parent_id": "100003381460677",
    "type": "post",
    "title": "a",
    "body": "b",
    "date_normal": "01 May 2012"
}
4

5 回答 5

3

parseJSON帮助你

var obj = jQuery.parseJSON('{"name":"John"}');
alert( obj.name );
于 2012-05-01T11:31:20.500 回答
1

json假设此 JSON 数据来自 AJAX 调用,如果您的服务器未正确配置以发送正确的Content-Type响应标头,请确保您已指定正确的数据类型 ( ):

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

然后传递给成功回调的参数将已经表示一个 javascript 对象(由 jQuery 自动从服务器响应 JSON 字符串反序列化)。一旦你有了一个 javascript 对象,你就可以通过名称直接访问它的属性。在您展示的示例中,它是一个简单的对象,而不是数组。因此,您可以直接按名称访问属性。

于 2012-05-01T11:29:45.167 回答
0

假设您使用它作为您的 ajax 回调:

function(data){ ... }

您可以使用点符号访问它:

data.type

于 2012-05-01T11:31:10.437 回答
0

如果您正在使用$.getJSON(这将自动将 AJAX 响应解析为 JSON 对象),那么

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

请注意,回调 in 的第一个参数$.each是数组中的索引,而不是元素本身(即第二个参数)。

于 2012-05-01T11:33:29.753 回答
0

请看以下两个线程;

通过 javascript 在 Json 中查找值

如何在jquery中从json中获取不同的值

我希望它有所帮助。

于 2012-05-01T11:44:12.587 回答