如何循环使用相同的键来获取json / object中的不同关联值

时间:2016-10-17 12:11:20

标签: jquery json object

我有像这样的json / object

{city: "bangalore", other:"other data", pic: "bangalore.jpg",city: "delhi", pic: "delhi.jpg"}
我有两个城市和它的照片。我想将它们分成两个单独的div。

在这里,我只是试图遍历每个城市?但失败了我该怎么做?

$.ajax({
      url: "mul.php",
      type: "POST",
      data: {
        a: a
      },
      dataType: "text",
      success: function(data) {
        var obj = $.parseJSON(data);
        console.log(obj.city); // i'm getting only delhi , what about bangalore?
        $.each(obj.city, function(i, city) {
          console.log(city); // i'm getting error
        })
      }
});

2 个答案:

答案 0 :(得分:3)

创建一个像这样的对象数组。

  

无法复制对象键。

[
    {
        "city": "bangalore",
        "other": "other data",
        "pic": "bangalore.jpg"
    },
    {
        "city": "delhi",
        "pic": "delhi.jpg"
    }
]

答案 1 :(得分:1)

正如其他人所说,你需要将每个城市放在一个单独的数组中。对象密钥不能复制,即使这在某种程度上是合法的,您如何知道哪个图片与哪个城市相关联?将城市与图片分离为单独的对象后,可以通过访问数组中每个对象的city属性来遍历它们。请注意,传递给$.each()的第一个参数是数组或对象本身,不是要显示的属性:



var arr = [
    {
        "city": "bangalore",
        "other": "other data",
        "pic": "bangalore.jpg"
    },
    {
        "city": "delhi",
        "pic": "delhi.jpg"
    }
];

$.each(arr, function(i, obj) {
  console.log(obj.city);
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
&#13;
&#13;