首页 > 解决方案 > Laravel:从 json 类型字符串访问键值

问题描述

我从 Laravel 的请求中获得了这些数据

{"value":"QWS Welding Supply Solutions, Taylor Street","latitude":-27.4495148,"longitude":153.0696076}

但我无法单独访问密钥,即值、纬度、经度。我试过json_decode但这不起作用。

这是我的控制器方法

public function saveLocation(Request $request){
    $location = $request->all();
    Location::create(['address'=>$location->value,'long'=>$location->longitude,'lat'=>$location->latitude]);
}

基本上我想将位置数据从请求保存到数据库。在 $location 对象中,我得到了粘贴在顶部的数据

标签: phparraysjsonlaravel

解决方案


我不知道简单的 json_decode 有什么问题,但我通过在 foreach 循环中使用 json_decode 然后访问密钥对值解决了我的问题

foreach (json_decode($location) as $key => $value) {
    if($key=="value")
        $obj['address'] = $value;
    else
        $obj[$key] = $value;
}
Location::create($obj);

推荐阅读