Frank Chen 在版块 Coding 中发起了话题 比较复杂的JSON格式转换数组后如何提取值 2年前
一般比较复杂的业务场景会用到json嵌套,通过json_decode将json格式数据转换为数组格式后,该如何调用呢?
$RG_array = json_decode($json_body,true);
//-debug code
/*echo’参数RG_array’;
var_dump($RG_array);
*/1>先通过var_dump函数将数组变量打印出来,进行格式化操作后得到如下的数组
array(7) {
[“authenticationResultCode”]=> string(16) “ValidCredentials”
[“brandLogoUri”]=> string(56) “http://xxx”
[“copyright”]=> string(247) “Copyright © 2022 ”
[“resourceSets”]=> array(1) {
[0]=> array(2) {
[“estimatedTotal”]=> int(1)
[“resources”]=> array(1) {
[0]=> array(9) {
[“__type”]=> string(61) “xxxx”
[“bbox”]=> array(4) {
[0]=> float(xxxx.xx)
[1]=> float(xxxx.xx)
}[“name”]=> string(56) “xxxxxx”
[“point”]=> array(2) {
[“type”]=> string(5) “Point”
[“coordinates”]=> array(2) {
[0]=> float(xxxx.xx)
[1]=> float(xxxx.xx)
}
}[“address”]=> array(6) {
[“addressLine”]=> string(13) “xxxx”
[“adminDistrict”]=> string(8) “xxxx”
[“adminDistrict2”]=> string(8) “xxxx”
[“countryRegion”]=> string(5) “xxxx”
[“formattedAddress”]=> string(56) “xxxx”
[“locality”]=> string(15) “xxxx”
}[“confidence”]=> string(4) “High”
[“geocodePoints”]=> array(1) {
[0]=> array(4) {
[“type”]=> string(5) “Point”
[“coordinates”]=> array(2) {
[0]=> float(xxxx.xx)
[1]=> float(xxxx.xx)
}
[“calculationMethod”]=> string(7) “Rooftop”
[“usageTypes”]=> array(1) {
[0]=> string(7) “Display”
}
}
}[“matchCodes”]=> array(1) {
[0]=> string(4) “Good”
}
}
}
}
}[“statusCode”]=> int(200)
[“statusDescription”]=> string(2) “OK”
[“traceId”]=> string(51) “xxxx|CO00004BC9|0.0.0.1”
}2> 定义数组提取参数。以上面的参数为例,这里我们想提取数组里面的formattedAddress 参数值
//详细地址信息数组.一维数组.注意json大括号前面的键值0
$local_regeocode=$RG_array[‘resourceSets’][0];
//详细地址信息的数组.二维数组
$resources= $local_regeocode[‘resources’][0];
$address = $resources[‘address’];
//已经格式化后的数据.三位数组
$real_address =$address[‘formattedAddress’];结束。
最后在线: 活跃于 1天, 2小时前
评论: 7
获赞: 0
文章: 0
粉丝: 68
关注: 68
好友: 18
User Rating: ( vote)