必须将这个Json数组从Android发送到php脚本。在这种情况下,我发送这个json与1元素('CABECERA'),在我的PHP脚本中,我不知道如何解析使用。
如何从这个json重新创建一个完整的CABECERA对象?
$_jsone_str= [ {\"CABECERA\":[{\"CustomerID\":\"1\",\"datetime\":\"\",\"fecha\":\"150303122830\",\"idadmin\":\"3\",\"idcli\":\"4\",\"msj\":\"\",\"nroped\":\"\",\"orderId\":\"1\",\"puntoVentaID\":\"AMALGAME\",\"status\":\"0\",\"total\":\"0.0\"}]}]
$json = json_decode($_jsone_str);
foreach ( $json ->CABECERA as $decode ){
print_r($decode);
}
如何解析这个json数组 我做错了什么?
答案 0 :(得分:1)
我通常做的是以下内容:
我首先检查POST HEADER POST 的POST JSON是否存在:
if( isset($_POST["POST"]) ) {
}
我解除分配JSON文件:
$data = $_POST["JSON"];
$data = stripslashes($data);
$jsonDecoded = json_decode($data);
然后我解析JSON数据:
foreach ($jsonDecoded->**"object/array name"** as $object) {
}
在您的情况下,"对象/数组名称" 恰好是 CABECERA
完整代码:
if( isset($_POST["JSON"]) ) {
$data = $_POST["JSON"];
$data = stripslashes($data);
$jsonDecoded = json_decode($data);
foreach ($jsonDecoded->**"object/array name"** as $object) {
}
}
答案 1 :(得分:0)
json数组必须是字符串。
函数json_decode($ data,true) - 查找第二个paremeter,它将返回关联数组中已解析的json,否则它将作为对象。
$json = "[ {\"CABECERA\":[{\"CustomerID\":\"1\",\"datetime\":\"\",\"fecha\":\"150303122830\",\"idadmin\":\"3\",\"idcli\":\"4\",\"msj\":\"\",\"nroped\":\"\",\"orderId\":\"1\",\"puntoVentaID\":\"AMALGAME\",\"status\":\"0\",\"total\":\"0.0\"}]}]";
foreach ( json_decode($json, true) as $decode ){
print_r($decode);
}
答案 2 :(得分:0)
确保要解码的JSON是一个字符串:
$_jsone_str= "[ {\"CABECERA\":[{\"CustomerID\":\"1\",\"datetime\":\"\",\"fecha\":\"150303122830\",\"idadmin\":\"3\",\"idcli\":\"4\",\"msj\":\"\",\"nroped\":\"\",\"orderId\":\"1\",\"puntoVentaID\":\"AMALGAME\",\"status\":\"0\",\"total\":\"0.0\"}]}]";
$json = json_decode($_jsone_str);
检查结果:
print_r($json);
以正确的方式调用它:
foreach ( $json as $decode ){
print_r($decode->CABECERA);
}