数组里面的对象怎么获取

首先,我得到的是一个string:

{"status":"0","t":"","set_cache_time":"","data":[{"ExtendedLocation":"","OriginQuery":"113.219.202.173","appinfo":"","disp_type":0,"fetchkey":"113.219.202.173","location":"湖南省 电信","origip":"113.219.202.173","origipquery":"113.219.202.173","resourceid":"6006","role_id":0,"shareImage":1,"showLikeShare":1,"showlamp":"1","titlecont":"IP地址查询","tplt":"ip"}]}

然后我json_decode($res->body())一下,得到:

{
    "status": "0",
    "t": "",
    "set_cache_time": "",
    "data": [
        {
            "ExtendedLocation": "",
            "OriginQuery": "113.219.202.173",
            "appinfo": "",
            "disp_type": 0,
            "fetchkey": "113.219.202.173",
            "location": "湖南省 电信",
            "origip": "113.219.202.173",
            "origipquery": "113.219.202.173",
            "resourceid": "6006",
            "role_id": 0,
            "shareImage": 1,
            "showLikeShare": 1,
            "showlamp": "1",
            "titlecont": "IP地址查询",
            "tplt": "ip"
        }
    ]
}

然后我json_decode($res->body())->data一下,得到:

[
    {
        "ExtendedLocation": "",
        "OriginQuery": "39.144.145.92",
        "appinfo": "",
        "disp_type": 0,
        "fetchkey": "39.144.145.92",
        "location": "中国 移动",
        "origip": "39.144.145.92",
        "origipquery": "39.144.145.92",
        "resourceid": "6006",
        "role_id": 0,
        "shareImage": 1,
        "showLikeShare": 1,
        "showlamp": "1",
        "titlecont": "IP地址查询",
        "tplt": "ip"
    }
]

最后我只想要location,但是,无论我怎么写都不对

我写json_decode($res->body())->data[0]
报错:

Undefined array key 0

我写json_decode($res->body())->data->location
报错:

Attempt to read property "location" on array

所以我到底要写啥?不就是数组里的对象吗?

补充一下代码:

$grid->column('ip_address','ip地址')->display(function($v){

$res =  Http::get('http://opendata.baidu.com/api.php?query='  .  $v.  '&co=&resource_id=6006&oe=utf8');

$location =  json_decode($res->body())->data;

return  $location;

});
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
最佳答案
$q = '{"status":"0","t":"","set_cache_time":"","data":[{"ExtendedLocation":"","OriginQuery":"113.219.202.173","appinfo":"","disp_type":0,"fetchkey":"113.219.202.173","location":"湖南省 电信","origip":"113.219.202.173","origipquery":"113.219.202.173","resourceid":"6006","role_id":0,"shareImage":1,"showLikeShare":1,"showlamp":"1","titlecont":"IP地址查询","tplt":"ip"}]}';


var_dump(reset(json_decode($q)->data)->location);
1年前 评论
wongvio (楼主) 1年前
讨论数量: 10

$res->body() 确定是那个 json 字符串?

1年前 评论
wongvio (楼主) 1年前
php_yt (作者) 1年前
wongvio (楼主) 1年前
$q = '{"status":"0","t":"","set_cache_time":"","data":[{"ExtendedLocation":"","OriginQuery":"113.219.202.173","appinfo":"","disp_type":0,"fetchkey":"113.219.202.173","location":"湖南省 电信","origip":"113.219.202.173","origipquery":"113.219.202.173","resourceid":"6006","role_id":0,"shareImage":1,"showLikeShare":1,"showlamp":"1","titlecont":"IP地址查询","tplt":"ip"}]}';


var_dump(reset(json_decode($q)->data)->location);
1年前 评论
wongvio (楼主) 1年前

(json_decode($res)->data)[0]->location

1年前 评论
wongvio (楼主) 1年前
ㅤㅤ (作者) 1年前

json_decode第二个参数,false或者不写就转对象,true就是关联数组

$s ='{"status":"0","t":"","set_cache_time":"","data":[{"ExtendedLocation":"","OriginQuery":"113.219.202.173","appinfo":"","disp_type":0,"fetchkey":"113.219.202.173","location":"湖南省 电信","origip":"113.219.202.173","origipquery":"113.219.202.173","resourceid":"6006","role_id":0,"shareImage":1,"showLikeShare":1,"showlamp":"1","titlecont":"IP地址查询","tplt":"ip"}]}';

var_dump(json_decode($s,1)['data'][0]['location']);

//output
string(16) "湖南省 电信"

var_dump(json_decode($s)->data[0]->location);

//output
string(16) "湖南省 电信"
1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!