如何在php中转换数组中的json [英] how to convert json in array in php
本文介绍了如何在php中转换数组中的json的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我刚学过php,请帮忙 我有一个json 我不知道这个json是否有效,那我该如何将json启用到数组中呢?
I just learned php, please help i have a json I don't know if this json is valid or not, then how do I enable json to an array
"[{id_service\":\"3\",\"reference_number\":\"\",\"tracking_number\":\"RJC-0000-0001\",\"kd_inbound\":\"INB-1000-0001\",\"tgl_inbound\":\"2019-11-08 00:00:00\",\"status_inb\":\"1\"},{\"id_service\":\"3\",\"reference_number\":\"\",\"kd_outbag\":\"BAG-1468-0001\",\"tanggal_outbag\":\"2019-11-08 00:00:00\",\"status_outbag\":\"1\"},{\"id_service\":\"3\",\"reference_number\":\"\",\"kd_outbound\":\"OTB-1826-0001\",\"tgl_outbound\":\"2019-11-08 14:04:00\",\"status_otb\":\"1\"},{\"id_service\":\"3\",\"reference_number\":\"\",\"tracking_number\":\"RJC-0000-0001\",\"kd_indes\":\"INB-DES-56730001\",\"tgl_indes\":\"2019-11-08 14:07:30\",\"status_indes\":\"1\"},{\"id_service\":\"3\",\"reference_number\":\"\",\"tracking_number\":\"RJC-0000-0001\",\"tgl_status\":\"2019-11-07 17:06:43\",\"status\":\"Consignee Unknown\"},{\"id_service\":\"3\",\"reference_number\":\"\",\"tracking_number\":\"RJC-0000-0001\",\"tgl_status\":\"2019-11-08 10:29:07\",\"status\":\"Closed\"}]"
如何将json转换为数组
how to convert json to array
这是我的代码
public function awb_get() {
$id = $this->get('tracking_number');
$arr= array(
$this->M_tarif->tampil_status_inbound($id),
$this->M_tarif->tampil_status_otboundbag($id),
$this->M_tarif->tampil_status_otboundori($id),
$this->M_tarif->tampil_status_indes($id)
);
$result = str_replace(array('[',']','\n'), '',htmlspecialchars(json_encode($arr), ENT_NOQUOTES));
$str = preg_replace("#(/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+/)|([\s\t]//.*)|(^//.*)#", '', $result);
$json = '[';
$json .= substr($str, 2,-1);
$json .= ']';
$jsonData = preg_replace("/,(?!.*,)/", "", $json);
$this->response($jsonData, 200);
}
如何正确替换json,这样输出
how to replace json properly so output like this
Array
(
[0] => stdClass Object
(
[id_service] => 3
[reference_number] =>
[tracking_number] => RJC-0000-0001
[kd_inbound] => INB-1000-0001
[tgl_inbound] => 2019-11-07 00:00:00
[status_inb] => 1
)
[1] => stdClass Object
(
[id_service] => 3
[reference_number] =>
[kd_outbag] => BAG-1468-0002
[tanggal_outbag] => 2019-11-07 00:00:00
[status_outbag] => 1
)
[2] => stdClass Object
(
[id_service] => 3
[reference_number] =>
[kd_outbound] => OTB-1826-0001
[tgl_outbound] => 2019-11-07 17:04:49
[status_otb] => 1
)
推荐答案
这只是JSON编码为JSON字符串.因此只需解码两次.
This is just JSON encoded as a JSON string. So just decode it twice.
$data = '"[{\"id_service\":\"3\",\"reference_number\":\"\",\"tracking_number\":\"RJC-0000-0001\",\"kd_inbound\":\"INB-1000-0001\",\"tgl_inbound\":\"2019-11-08 00:00:00\",\"status_inb\":\"1\"},{\"id_service\":\"3\",\"reference_number\":\"\",\"kd_outbag\":\"BAG-1468-0001\",\"tanggal_outbag\":\"2019-11-08 00:00:00\",\"status_outbag\":\"1\"},{\"id_service\":\"3\",\"reference_number\":\"\",\"kd_outbound\":\"OTB-1826-0001\",\"tgl_outbound\":\"2019-11-08 14:04:00\",\"status_otb\":\"1\"},{\"id_service\":\"3\",\"reference_number\":\"\",\"tracking_number\":\"RJC-0000-0001\",\"kd_indes\":\"INB-DES-56730001\",\"tgl_indes\":\"2019-11-08 14:07:30\",\"status_indes\":\"1\"},{\"id_service\":\"3\",\"reference_number\":\"\",\"tracking_number\":\"RJC-0000-0001\",\"tgl_status\":\"2019-11-07 17:06:43\",\"status\":\"Consignee Unknown\"},{\"id_service\":\"3\",\"reference_number\":\"\",\"tracking_number\":\"RJC-0000-0001\",\"tgl_status\":\"2019-11-08 10:29:07\",\"status\":\"Closed\"}]"';
$json = json_decode($data);
$array = json_decode($json);
print_r($array);
这篇关于如何在php中转换数组中的json的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文