如何显示JSON字符串转换数组中的数据

时间:2019-02-07 06:03:48

标签: javascript php json ajax laravel

我想通过将字符串变成数组来显示JSON字符串中的一些数据

我已经使用json_decode将json字符串转换为数组。这是我的json字符串(dd):

"{"title":"W3Schools Online Web Tutorials","description":"w3schools.com","image":"http:\/\/www.w3schools.com\/images\/colorpicker.png","url":"https:\/\/www.w3schools.com\/"}"

当我返回数组或dd数组时,它向我显示了我想要的数组(dd):

array:4 [▼"title" => "W3Schools Online Web Tutorials""description" => "w3schools.com""image" => "http://www.w3schools.com/images/colorpicker.png""url" => "https://www.w3schools.com/"]

但是当我尝试显示$myarray->title时,它给了我错误:

  

试图获取非对象的属性“ title”

public function showDetail(Request $request){
    $rUrl = "http://api.linkpreview.net/?key=5c59318d927ca5c5b481c89a6c18a0a2623a61d568502&q=".$request->body;
    $json_string= file_get_contents($rUrl);
    $data= json_decode($json_string,true);
    return view('showIn')->with('data', $data);


}

预期结果:W3Schools在线Web教程
实际结果:错误:尝试获取非对象的属性“ title”

3 个答案:

答案 0 :(得分:1)

您的JSON字符串用双引号引起来,请使用单引号。

第二,$myarray->title是处理对象时要执行的操作。由于您要使用数组,因此请像$myarray['title']

这将起作用。

$myjson = '{"title": "W3Schools Online Web Tutorials", "description":"w3schools.com","image":"http:\/\/www.w3schools.com\/images\/colorpicker.png","url":"https:\/\/www.w3schools.com\/"}';

$myarray = json_decode($myjson, true);

echo $myarray['title'];

答案 1 :(得分:0)

这是一个数组,因此您应该可以像这样$data['title'];

答案 2 :(得分:0)

您应该使用response json而不是return view('showIn')-> with('data',$ data);

return response()->json($data);

但是如果您想在视图中打印json,只需执行

$rUrl = "http://api.linkpreview.net/?key=5c59318d927ca5c5b481c89a6c18a0a2623a61d568502&q=".$request->body;
$json_string= file_get_contents($rUrl);
return view('showIn')->with('json', $json_string);

在刀片模板中使用

{{ $json }}