繁体   English   中英

如何在Codeigniter中更改JSON值数据的格式

[英]how to change the format of json value data in codeigniter

我正在尝试显示具有预定义json格式的插件的数据,但是尝试后数据与格式不匹配怎么办?

需要JSON

[
  {
    latLng: [-6.17343444,1206.834234294],
    name: 'XY'
  },
  {
    latLng: [-6.1742343244,106.898987294],
    name: 'XK'
  }
]

结果我的JSON

[
  {
    "latLng": "-6.17343444,1206.834234294",
    "name": "XK"
  },
  {
    "latLng": "-6.1742343244,106.898987294",
    "name": "XY"
  }
]

myscript PHP

public function lat_lang() {
    foreach($this->model->name_model() as $row){    
        $data[] = array(
            'latLng' => $row->lat_long,
            'name' => $row->city
          );                                
    }
        header('content-type: application/json');   
        echo json_encode($data);    
}

调用JSON

$.parseJSON('<?php echo base_url().'mycontrollers';?>', function(datas) {
    console.log(datas);
});

您可以使用explode()将字符串"-6.17343444,1206.834234294"转换为数组[-6.17343444,1206.834234294]

public function lat_lang() {
    foreach($this->model->name_model() as $row){    
        $data[] = array(
            'latLng' => explode(',',$row->lat_long),
            'name' => $row->city
          );                                
    }
        header('content-type: application/json');   
        echo json_encode($data);    
}

如果要获取浮点数(对于JSON中的所有值),则可以使用JSON_NUMERIC_CHECK

json_encode($data, JSON_NUMERIC_CHECK);

或者,仅针对特定值:

$latLng = explode(',', $row->lat_long);
$latLng = array_map('floatval', $latLng);
$data[] = array(
    'latLng' => $latLng,
    'name' => $row->city
  ); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM