javascript - ajax响应后无法遍历对象

标签 javascript php jquery json ajax

我知道这个问题已经被问过了,但我找不到我想要的答案。

我正在尝试遍历我在 JSON data 中获得的数据ajax 之后的格式回复。 我的 Javascript 代码是:

function ajaxMe(){
    $(function(){
      $.ajax({
        type : 'GET',
        url : 's-test.php'
      }).done(function(data){
        values = [data];
        alert(data)
      })
    });
  }

收到values中的数据后变量成功 我正在尝试使用 console.log(JSON.stringify(values)) 打印它在 console结果如下:

["\r\n  {\"lat\" : \"51.508742\", \"ln\" : \"-0.320850\" , \"name\" : \"my corporation\"},\r\n  {\"lat\" : \"51.508742\", \"ln\" : \"-0.420850\" , \"name\" : \"my corporation\"},\r\n  {\"lat\" : \"51.508742\", \"ln\" : \"-0.520850\" , \"name\" : \"my corporation\"},\r\n  {\"lat\" : \"51.508742\", \"ln\" : \"-0.620850\" , \"name\" : \"my corporation\"},\r\n  {\"lat\" : \"51.508742\", \"ln\" : \"-0.720850\" , \"name\" : \"my corporation\"},\r\n  {\"lat\" : \"51.508742\", \"ln\" : \"-0.820850\" , \"name\" : \"my corporation\"},\r\n  {\"lat\" : \"51.508742\", \"ln\" : \"-0.920850\" , \"name\" : \"my corporation\"},\r\n  {\"lat\" : \"51.508742\", \"ln\" : \"-1.320850\" , \"name\" : \"my corporation\"},\r\n  {\"lat\" : \"51.508742\", \"ln\" : \"-2.320850\" , \"name\" : \"my corporation\"},\r\n  {\"lat\" : \"51.508742\", \"ln\" : \"-3.320850\" , \"name\" : \"my corporation\"}\r\n"]

代替

[{"lat" : "51.508742", "ln" : "-0.320850" , "name" : "my corporation"},
  {"lat" : "51.508742", "ln" : "-0.420850" , "name" : "my corporation"},
  {"lat" : "51.508742", "ln" : "-0.520850" , "name" : "my corporation"},
  {"lat" : "51.508742", "ln" : "-0.620850" , "name" : "my corporation"},
  {"lat" : "51.508742", "ln" : "-0.720850" , "name" : "my corporation"},
  {"lat" : "51.508742", "ln" : "-0.820850" , "name" : "my corporation"},
  {"lat" : "51.508742", "ln" : "-0.920850" , "name" : "my corporation"},
  {"lat" : "51.508742", "ln" : "-1.320850" , "name" : "my corporation"},
  {"lat" : "51.508742", "ln" : "-2.320850" , "name" : "my corporation"},
  {"lat" : "51.508742", "ln" : "-3.320850" , "name" : "my corporation"}]

并且无法遍历此 object使用 forEach 时:

values.forEach(function(v, i){
    alert(i);
});

它是如何工作的? 谢谢。

最佳答案

首先在你的 jquery ajax 代码中添加一行简单的代码 数据类型:'json'

$.ajax({
        type: 'GET',
        url: 's-test.php',
        dataType: 'json',
        success: function (data) {               
            $.each(data, function (key, value) {                     
                alert(value.lat);
            });               
        }
    });

关于javascript - ajax响应后无法遍历对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39144798/

相关文章:

javascript - 并行 promise 链,其间具有顺序动态内容

PHP json 处理程序与旧的 php 版本兼容

PHP - 登录表单在 IE8 中不起作用

检查 div 中的字符长度时,JQuery '.length' 属性返回不正确的值

javascript - JSON 应为空,但包含字符串 "[]"

javascript - 将按钮变成加载圆圈动画

javascript - 在 IE 中加载页面时要求启用 cookie 时出现问题

php - 表单请求验证不起作用。它只是在 postman 中加载主页

javascript - 如何使用asp.net获取jquery select2标签列表的值?

javascript - 检查背景图像是否已加载