$output={“state”: “1”,”tips”:”成功返回”,”body”: [{“id”: “532724199607230917”,”sex”: “男”,”date”: “1996年07月23日”,”area”: “云南省 思茅地区 景东彝族自治县”}]}
回复讨论(解决方案)
用 json_decode() 变为数组
用 json_decode() 变为数组
$postarray ={“state”: “1”,”tips”:”成功返回”,”body”: [{“id”: “532724199607230917”,”sex”: “男”,”date”: “1996年07月23日”,”area”: “云南省 思茅地区 景东彝族自治县”}]}];
$de_json = json_decode($postarray,true);
print_r($de_json)
$count_json = count($de_json);
for ($i = 0; $i < $count_json; $i++) { //echo var_dump($de_json); $dt_record = $de_json[$i]['state']; $data_type = $de_json[$i]['tips']; $message = json_encode($de_json[$i]['body']); } echo $data_type; 不行啊,输出是空白的
转成数组后它是关联数组,能用数字下标获取吗?
$postarray ='{“state”: “1”,”tips”:”成功返回”,”body”: [{“id”: “532724199607230917”,”sex”: “男”,”date”: “1996年07月23日”,”area”: “云南省 思茅地区 景东彝族自治县”}]}’;
$de_json = json_decode($postarray,true);
print_r($de_json);
//$count_json = count($de_json);
// for ($i = 0; $i < $count_json; $i++)
// {
//echo var_dump($de_json);
$dt_record = $de_json['state'];
$data_type = $de_json['tips'];
$message = json_encode($de_json['body']);
// }
echo $dt_record,php_eol;
echo $data_type,php_eol;
echo $message;
1
成功返回
[{"id":"532724199607230917","sex":"\u7537","date":"1996\u5e7407\u670823\u65e5","area":"\u4e91\u5357\u7701 \u601d\u8305\u5730\u533a \u666f\u4e1c\u5f5d\u65cf\u81ea\u6cbb\u53bf"}]
转成数组后它是关联数组,能用数字下标获取吗?
$postarray ='{“state”: “1”,”tips”:”成功返回”,”body”: [{“id”: “532724199607230917”,”sex”: “男”,”date”: “1996年07月23日”,”area”: “云南省 思茅地区 景东彝族自治县”}]}’;
$de_json = json_decode($postarray,true);
print_r($de_json);
//$count_json = count($de_json);
// for ($i = 0; $i < $count_json; $i++)
// {
//echo var_dump($de_json);
$dt_record = $de_json['state'];
$data_type = $de_json['tips'];
$message = json_encode($de_json['body']);
// }
echo $dt_record,php_eol;
echo $data_type,php_eol;
echo $message;
1
成功返回
[{"id":"532724199607230917","sex":"\u7537","date":"1996\u5e7407\u670823\u65e5","area":"\u4e91\u5357\u7701 \u601d\u8305\u5730\u533a \u666f\u4e1c\u5f5d\u65cf\u81ea\u6cbb\u53bf"}]
还是空白
print_r($de_json); 这句打开能输出数组吗
php 的 json 函数只能处理 utf-8 编码的数据
如果你的程序不是 utf-8 编码的,则需转码:$postarray = iconv(‘gbk’, ‘utf-8’, $postarray);
直接foreach()搞定,,,干嘛用for
再说你的body是个数组,,转换一次就够了,,为啥循环的时候还要在转一次
$output = ‘{“state”: “1”,”tips”:”成功返回”,”body”: [{“id”: “532724199607230917”,”sex”: “男”,”date”: “1996年07月23日”,”area”: “云南省 思茅地区 景东彝族自治县”}]}’;
$result = json_decode($output,true);
$state = $result[‘state’];
$tips = $result[‘tips’];
foreach( $result[‘body’] as $k => $val){
$id = $val[‘id’];
}
echo “”;
print_r($id);
die;
body是个二维数组 这样就可以了