转动对象数组中的字符串

时间:2016-10-04 06:14:35

标签: jquery object multidimensional-array

我对列表中的每个项目都有以下数据属性:

data-latlng="[{"lat":40.7713024, "lng":-73.9632393}]"

我可以将其转换为像

这样的对象数组
arr = $(this).data("latlng");

$.each(arr, function(index, value) {
         coords.push({'details': value});
});

然后引用lat例如:

for(var i = 0; i < coords.length; i++){
    console.log(coords[i].details.lat);
}

然而现在我需要一些额外的信息,比如标题..但是现在它的多维我不能再引用或访问它了......有什么想法吗?!

data-latlng="[{title:"Johns place", location:{lat:40.7713024, lng:-73.9632393}}]"

var coords = [
    {title: 'Johns place', location: {lat: 40.7713024, lng: -73.9632393}},
    {title: 'Jacks Loft', location: {lat: 40.7444883, lng: -73.9949465}},
];

2 个答案:

答案 0 :(得分:1)

不确定为什么你有属性和位置。如果您使用以下内容,则可以更轻松地访问纬度和经度:

data-latlng="[{“title”:"Johns place", “lat”:40.7713024, ”lng“:-73.9632393}]"

无论如何,以下是我提出的解决方案。希望它可以提供帮助。

&#13;
&#13;
$('li').each(function() {
arr = $(this).data("details")[0];
/* Not really needed actually  
coords = [];
$.each(arr, function(index, value) {
   coords[index] = value;
});
*/
    $('#title').html(arr.title);
    $('#latitude').html(arr.location.lat);
    $('#longitude').html(arr.location.lng);

});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li data-details='[{"title":"Johns place", "location":{"lat":40.7713024, "lng":-73.9632393}}]'>Johns Place</li>
</ul>
<div id="title">
</div>
<div id="location">
  <label>Location</label>
  <span id="latitude"></span>
  <span id="longitude"></span>
</div>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

更正你的json字符串

{
    "coords": [{
        "title": "Johns place",
        "location": [{
            "lat": 40.7713024,
            "lng": -73.9632393
        }]
    }, {
        "title": "Johns place",
        "location": [{
            "lat": 40.7713024,
            "lng": -73.9632393
        }]
    }]
}

访问代码

var latitude = data.coords.location[0].lat;
console.log('Latitude : ', latitude);

var longitude = data.coords.location[0].lng;
console.log('Longitude : ', longitude);