php中如何将json数据输出

$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是个二维数组 这样就可以了

Posted in 未分类