将JSON转换为Laravel PHP

时间:2018-10-18 19:37:18

标签: php laravel twig

我正在将json转换为larvel php,我想知道如何将其转换为


JSON:

"assetList":[
  {
    "name":"https://mobilize-uploads-prod.s3.amazonaws.com/uploads/event/Test-Logo-Small-Black-transparent-1_20180730154641244030.png"
  },
  {
    "name":"https://mobilize-uploads-prod.s3.amazonaws.com/uploads/event/Test-Logo-Small-Black-transparent-1_20180730154641244030.png"
  },
  {
    "name":"https://mobilize-uploads-prod.s3.amazonaws.com/uploads/event/Test-Logo-Small-Black-transparent-1_20180730154641244030.png"
  }
]

小PHP:

'thumbnail' => 'assetList'['name'],

您的答案将如下所示:

 'thumbnail' => 'Your code here',

应该输出一个图像,这里仅以3个不同的图像为例。现在,它没有输出任何东西,因此它无法正常工作,也许是因为它是一个数组,而且我不确定如何编写这样的数组才能正常工作。我认为该阵列正在阻止其工作。任何帮助将不胜感激。

编辑:我刚刚发现这是larvel php

3 个答案:

答案 0 :(得分:2)

请在下面查看我的答案

  1. 首先,您的Json应该如下

{"assetList":[
  {
    "name":"https://mobilize-uploads-prod.s3.amazonaws.com/uploads/event/Test-Logo-Small-Black-transparent-1_20180730154641244030.png"
  },
  {
    "name":"https://mobilize-uploads-prod.s3.amazonaws.com/uploads/event/Test-Logo-Small-Black-transparent-1_20180730154641244030.png"
  },
  {
    "name":"https://mobilize-uploads-prod.s3.amazonaws.com/uploads/event/Test-Logo-Small-Black-transparent-1_20180730154641244030.png"
  }
] }

  1. 首先在php中为您的数据做一个Json_decode。

    $json_data = [YOUR_JSON_DATA]
    $data_arr['data'] = json_decode($json_data,true);
    
  2. 将数组传递给树枝 //用于Symfony php框架

    $this->render("app:index.html.twig", $data_arr);
    
  3. 在树枝中,您需要更新以下代码以显示图片网址

    {% for img_data in data.assetList %}
        {{ img_data.name }}
    {% endfor %}
    

让我知道您是否还有其他问题。

答案 1 :(得分:1)

如果要在Twig中构建与JSON类似的结构,可以执行以下操作:

{% set thumbnail = { "assetList": [{"name": "http://..."}, {"name": "http://..."}] } %}

如果要将类似的结构传递到视图中,例如做类似$this->render('my_template', ['thumbnail' => ...]的操作,然后您的php代码就可以生成类似于JSON中的数组的数组,如下所示:

[
    'assetList' => [
        [
            'name' => 'http://...',
        ],
        [
            'name' => 'http://...',
        ],
    ]
]

编辑:在Twig中访问它也不会assetList["name"],而是:

{{ thumbnail["assetList"][0]["name"] }}

0是列表条目的偏移量,即0-2,如果您有3张图片。

答案 2 :(得分:0)

如果您将json作为array传递给twig,那么您将需要使用循环来读取数组assetList

{% for asset in assetList %}
    {{ asset.name }}
{% endfor %}