我真的不知道如何在对象中转换数组。
我需要的是我的数组可以变换为像这个对象:
var locations= [
{lat: -22.9, lng: -43.23},
{lat: 23.03, lng: 113.12},
{lat: 23.12, lng: 113.25},
{lat: -7.24917, lng: 112.75083},
{lat: -6.323116, lng: 106.870941},
{lat: 40.69, lng: -73.99},
{lat: 40.74, lng: -73.94}
];
我用ajax检索数据:
$(function() {
$.ajax({
url : '<?= base_url('admin/getCustomerLatLong'); ?>',
method : 'GET',
// dataType : 'JSON',
success : function(data) {
console.log(data);
},
error: function (jqXHR, textStatus, errorThrown) {
alert('Error while getting the data. Call the developer!');
}
});
});
我正在使用codeigniter,这是我的控制器中的getCustomerLatLong
函数:
public function getCustomerLatLong() {
$data = $this->M_customer->getAllCustomers()->result();
$locations = array();
foreach ($data as $location) :
$locations['lat'] = $location->latKota;
$locations['lng'] = $location->lngKota;
echo json_encode($locations);
endforeach;
}
请提前感谢任何答案对我有所帮助。
答案 0 :(得分:3)
我想你的问题可归结为你在循环中使用echo
。
尝试将控制器更改为:
public function getCustomerLatLong()
{
$data = $this->M_customer->getAllCustomers()->result();
$locations = [];
foreach ($data as $location) {
$locations[] = [
'lat' => $location->latKota,
'lng' => $location->lngKota,
];
}
echo json_encode($locations);
}
您可能还需要取消注释dataType : 'JSON',
希望这有帮助!