Reputation: 1066
I got this data from request in Laravel
{"value":"QWS Welding Supply Solutions, Taylor Street","latitude":-27.4495148,"longitude":153.0696076}
but i am not able to access keys individually i.e value, latitude, longitude. I have tried json_decode but that's not working.
This is my controller method
public function saveLocation(Request $request){
$location = $request->all();
Location::create(['address'=>$location->value,'long'=>$location->longitude,'lat'=>$location->latitude]);
}
basically i want to save location data from request to database. in the $location object i got data that i pasted on top
Upvotes: 2
Views: 6844
Reputation: 2329
If you have a json like this
{"value":"QWS Welding Supply Solutions, Taylor Street","latitude":-27.4495148,"longitude":153.0696076}
you can do like this to access the values
$json = {"value":"QWS Welding Supply Solutions, Taylor Street","latitude":-27.4495148,"latitude":153.0696076};
the you can access the values like this
$json = json_decode($json, true);
echo $json['value'];
echo $json['latitude'];
echo $json['latitude'];
I hope it helps some one
Upvotes: 0
Reputation: 1066
I don't know what's wrong with simple json_decode but I resolved my issue by using json_decode inside foreach loop and then accessing key pair values
foreach (json_decode($location) as $key => $value) {
if($key=="value")
$obj['address'] = $value;
else
$obj[$key] = $value;
}
Location::create($obj);
Upvotes: 4
Reputation: 15319
Json decode works properly for mentioned json.If $location
return mentioned json then
$data='{"value":"QWS Welding Supply Solutions, Taylor Street","latitude":-27.4495148,"longitude":153.0696076}';
dd(json_decode($data)->latitude);
so it should be
public function saveLocation(Request $request){
$location = json_decode($request->all());
Location::create(['address'=>$location->value,'long'=>$location->longitude,'lat'=>$location->latitude]);
}
Upvotes: 1