【问题标题】:Get specific info out of json [duplicate]从json中获取特定信息[重复]
【发布时间】:2014-09-22 14:24:04
【问题描述】:

如何从 jquery 中的 json 对象中仅获取“坐标”数据?每个对象都有自己的坐标?

从 php 返回的 json 示例如控制台所示:

[  
  {  
    "id":"7",
    "name":"EXAMPLE",
    "address":"example adress",
    "coords":"96.0,17.0"
  },
  {  
    same here etc.
  }
]

编辑:问题是我无法以大家推荐的方式访问 json 对象。如果我输入 object[0] 我会得到“[” 如果我输入 object[1] 我会得到“{” 然后我会得到序列中的所有其他字符 '”'、“i”、“d”等。

我在控制台登录一个成功的 ajax 调用,如下所示:

.done(function(data) {
    console.log(data[2]);
});

我的 php 返回数据如下:

echo json_encode($myData);

【问题讨论】:

标签: javascript php jquery json


【解决方案1】:

您返回的数据只是一个字符串,因此您需要执行以下两项操作之一才能将其转换为 JSON 格式:

  • 在您的.ajax 调用中,在urldata 等参数旁边设置选项dataType: 'json' ($.ajax({ url: 'x.php', dataType: 'json' ... }).done(function...)
  • .done() 函数中手动解析 JSON (.done(function(data) { data = $.parseJSON(data); ... });)

这将转换成 JSON 格式,我在下面的原始答案适用。


由于您的 JSON 是最外层的数组 ([ ]),因此您可以使用数组表示法访问第一级项目(例如 [0])。在其中,您有一个对象 ({ }),因此您需要从那里使用点符号(例如 [0].coords)。

假设您的变量名为myJson,您可以使用myJson[0].coords 获得第一个坐标,使用myJson[1].coords 获得第二个坐标等。您可以遍历myJson 以在循环中获取所有coords

【讨论】:

  • 我应该提到我将这些数据作为一个成功的 ajax 调用,在我的 php 函数中我写了“echo json_encode($vsi_kraji);”如果我在我的 jquery 页面中进行控制台登录,我会得到:“undefined”
  • @LazyPeon 显示您的 AJAX 处理程序。通常,AJAX 调用的“成功”函数应该类似于 success: function(response) { - 在本例中,response 在此示例中是我的答案中的 myJson 变量
  • 我更新了问题以表明我的意思。
  • @LazyPeon 答案已更新以涵盖您应该需要的一切:-)
【解决方案2】:

您可以通过这种方式访问​​coords

objs[0].coords

coordsobjs 数组中第一个对象的成员。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-06
    • 1970-01-01
    • 2015-07-07
    • 1970-01-01
    • 2015-04-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多