在 Blade 中显示 JSON 集合

Posted

技术标签:

【中文标题】在 Blade 中显示 JSON 集合【英文标题】:Displaying JSON-collection in Blade 【发布时间】:2019-06-28 23:11:06 【问题描述】:

我正在尝试使用 Laravel 和 Blade 显示我的数据库中的 JSON 数据。

我的 JSON 数据如下所示:

[
    
        "title": "Open Projects",
        "sequence": "1",
        "columns": [
            "Open Projects",
            "Owner"
        ],
        "col": 
            "index": "1",
            "value": "title",
            "type": "longtext",
            "heading": "1"
        ,
        "0": 
            "title": "Owner",
            "index": "2",
            "value": "owner",
            "type": "longtext",
            "heading": "0"
        
    ,
    ... more
]

当我尝试打印其中一个集合时,出现错误: "htmlspecialchars() expects parameter 1 to be string, array given (View: ...)"

【问题讨论】:

你有什么问题? 我的 Json 格式数据显示有问题。我需要使用 laravel 在刀片视图中显示此数据 Laravel: How do I parse this json data in view blade?的可能重复 我的问题是不同的。在 JSOn 数据中,我有一个名为 'columns 的数组。但我给出了类似的列: $value['columns'] ,我收到错误 htmlspecialchars() 预期参数 1 为字符串,.. 首先,欢迎来到 Stack Overflow。 :-) 请阅读how to ask。您需要在您的问题中向我们表明 - 我们不知道您想要什么或您的问题是什么。请添加您迄今为止尝试过的内容、您看到的错误、您希望看到的内容等 - 无需添加数百行代码。小而具体。 :-) 【参考方案1】:

"htmlspecialchars() expects parameter 1 to be string, array given 在您尝试使用 $variable 打印数组时发生。相反,您需要将其转换为字符串或对其进行循环。下面的解决方案会循环您的集合。

假设您像这样注入 JSON:

return view('myview', ["json" => json_decode($json, true)]);

您可以像这样打印您的值:

@foreach($json as $project)
    <p>Title:  $project["title"] </p>
    <p>Sequence:  $project["sequence"] </p>
    <p>Columns: </p>
    <ul>
        @foreach($project["col"] as $key => $value)
            <li> $key  :  $value </li>
        @endforeach
    </ul>
    <p>"0" <- whatever this is</p>
    <ul>
        @foreach($project["0"] as $key => $value)
            <li> $key  :  $value </li>
        @endforeach
    </ul>
@endforeach

【讨论】:

以上是关于在 Blade 中显示 JSON 集合的主要内容,如果未能解决你的问题,请参考以下文章

使用 Laravel Blade 从 Postgres 显示 JSON 数据

从 Laravel Blade 中的 JSON 中选择值

如何在laravel中显示json

我正在使用 Laravel + vue 通过 Blade 将变量传递给 vue 但它不显示

解析 json 数据并在表格中循环显示

如何在 Aptana 中突出显示 Blade 语法