Laravel 5 JSON / 刀片

Posted

技术标签:

【中文标题】Laravel 5 JSON / 刀片【英文标题】:Laravel 5 JSON / Blade 【发布时间】:2017-01-05 12:32:57 【问题描述】:

我正在尝试将 JSON 传递给我的视图

使用此代码:

  Route::get('json', function() 
    $path = storage_path() . "/json/dish.json"; 
    $json = json_decode(file_get_contents($path), true);
    return View::make('pages.json')->withJson($json);
  );

dd($json)

我收到这个:

array:1 [▼
  "dish" => array:297 [▼
    0 => array:2 [▶]
1 => array:2 [▶]
2 => array:2 [▶]
3 => array:5 [▶]
...

当我尝试显示我的$json 的内容时:

@foreach($json["dish"] as $key => $item)
  $item
@endforeach

我收到此错误消息:

htmlentities() 期望参数 1 是字符串,给定数组(查看:/Users/beyerdynamic/Documents/Developer/dev1/resources/views/pages/json.blade.php

我在这里做错了什么?

【问题讨论】:

$item 是一个array 0 => array:2 [▶] 显然 $item 也是一个数组 【参考方案1】:

默认情况下,Laravel 会在输入之前尝试转义任何变量。如果你想避免它使用!! $item !!。但是, $item 是数组,它不会帮助您显示正确的值。您将获得“数组”作为输出。如果您想显示正确的数据,请使用 $item['your_key']

【讨论】:

我的 JSON 文件包含这样的键 "dish": [ "title": "California Burger", "body": "Beefburger mit geschmolzenem Cheddar Cheese, Salat, Tomaten und Zwiebeln", "price ": "7,90 €", "vendor": "Schräglage", , "title": "Lammkeule", "body": "aus dem Ofen mit Bratensoße, dazu Reis, dazu Beilagensalat und Fladenbrot", "price ": "8,50 €", "vendor": "Taverna Sultan Saray", ] 在我看来,我不确定如何遍历每个键,例如(价格、供应商、标题、正文)。如何访问“title”、“body”键?

以上是关于Laravel 5 JSON / 刀片的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 刀片上的 Vuejs

在 laravel 刀片中显示 JSON 数组

json中的输出对象,带有laravel刀片的单引号?

如何从 laravel 刀片中的 json 数据创建分页链接

为laravel刀片输出带双引号的json

Laravel 刀片中的 Unicode JSON 用于 React,生成 JSON.parse 问题