获取ajax响应中的字段

时间:2014-03-05 13:32:26

标签: jquery json

我发送ajax请求并获得此类响应

$.post("loadlatestreviews.html", function(data) {
    $("#latest").html(data);
});

响应是看起来像这样的数据数组

[
 {"subject" : "xxx", "message" : "xxx", "dateTime" : "Mar 5 xxxx"},
 {"subject" : "yyy", "message" : "yyy", "dateTime" : "Mar 5 yyyy"}
]

如何阅读字段subjectmessagedateTime

6 个答案:

答案 0 :(得分:2)

使用$.each() jquery方法:

var data = JSON.parse(data);
$.each(data, function(i, item){
    console.log(item.subject);
    console.log(item.message);
    console.log(item.dateTime);
});

您必须首先使用JSON.parse(data);解析字符串,并且必须循环输入数据,因为您的响应是包含json对象的数组。

答案 1 :(得分:1)

尝试类似:

$.ajax({
  url: 'loadlatestreviews.html'
  method: 'POST',
  dataType: 'json',
  success: function(data) {
    console.log(data);
    for (d in data) console.log(data[d]);
  }
});

这应该让你开始。此外,如果您实际上没有发送任何内容,则可以省略method: 'POST'参数,除非您确实需要POST。

让我知道这对你有用。

答案 2 :(得分:1)

$.each(data, function(i, obj){
    var subj = obj.subject;
    var msg = obj.message;
    var date = obj.dateTime;
});

答案 3 :(得分:1)

int foo[10]; int bar; int *baz = &foo[0]; int *ptr = new int[20]; std::cout << std::boolalpha << in_range(bar, baz) << "\n"; // won't compile std::cout << std::boolalpha << in_range(ptr, baz) << "\n"; // won't compile either 方法外,解析JSON后,您还可以按名称访问内部字段:

template <class Ty, size_t N>
bool in_range(Ty (&array)[N], Ty *test) {
    return  std::less_equal<Ty *>()(&array[0], test) &&
            std::less<Ty *>()(test, &array[0]+ N);
}

template <class Ty>
bool in_range(Ty &a, Ty *b) { return &a == b; }

template <class Ty>
bool in_range(Ty a, Ty b, size_t N) {
    return std::less_equal<Ty>()(a, b) && 
           std::less<Ty>()(b, a + N);
}

void f() { 
     double foo[10]; 
     double *x = &foo[0]; 
     double bar;
     double *baz = new double[20];

     std::cout << std::boolalpha << in_range(foo, x) << "\n";
     std::cout << std::boolalpha << in_range(bar, x) << "\n";
     std::cout << std::boolalpha << in_range(baz, x, 20) << "\n";
}

答案 4 :(得分:0)

for(i in data) {
  console.log(data[i]['subject'])
}

答案 5 :(得分:0)

通过使用$ .each()jquery方法,您可以迭代JSON响应数据。

var data = JSON.parse(data);
$.each(data, function(i, itm){
    // You can get each value in loop
    console.log(itm['subject']);
    console.log(itm['message']);
    console.log(itm['dateTime']);
});

我希望这个答案对你有用。