使用 Smarty 解码 json 文件

Posted

技术标签:

【中文标题】使用 Smarty 解码 json 文件【英文标题】:Decode json file using Smarty 【发布时间】:2021-11-22 08:18:56 【问题描述】:

我正在尝试从 youtube 解码 json 文件。我不是 Smarty 的专家。我无法理解如何做到这一点。这是我的尝试,无法锻炼如何做到这一点。我知道我正在阅读该文件,就像我阅读 $feed 一样。请有人告诉我我在做什么以及如何去做。谢谢。

capture assign=feedcache_remote_file url="https://www.googleapis.com/youtube/v3/videos?part=snippet%2CcontentDetails%2Cstatistics&id=Duf5UUT......"/capture

foreach from=$feed|json_decode item=data
       <p> title : $data->items->snippet->title  </p>
        <p> img : $data->items->snippet->thumbnails->default->url  </p>
 /foreach

  "kind": "youtube#videoListResponse",
  "etag": "9ZzDWJlUMjKGsGwGvtEREF_adhk",
  "items": [
    
      "kind": "youtube#video",
      "etag": "L3XeWemLM2vSCJh_RkWQgIjUbs4",
      "id": "Duf5UUT4ESg",
      "snippet": 
        "publishedAt": "2021-07-21T16:39:22Z",
        "channelId": "UCEUfZ0aVKoC80RIAfvTBfDw",
        "title": "A.....Z",
        "description": "Shef......ling about this",
        "thumbnails": 
          "default": 
            "url": "https://i.ytimg.com/vi/D...g/default.jpg",
            "width": 120,
            "height": 90
          ,
          ......................

【问题讨论】:

【参考方案1】:
capture assign=feedcache_remote_file url="https://www.googleapis.com/youtube/v3/videos?part=snippet%2CcontentDetails%2Cstatistics&id=Duf5UUT......"/capture

assign var=itemArray value=$feed|json_decode:true

foreach from=$itemArray item=data
<p> title : $data->items->snippet->title </p>
<p> img : $data->items->snippet->thumbnails->default->url </p>
/foreach

你能试试上面的代码吗?我已经添加了解码json的附加语句

assign var=itemArray value=$feed|json_decode:true

此语句将解码 json 并将解码后的 json 分配给 $itemArray 变量,然后您在 foreeach 循环中使用 $itemArray 如上代码所示。

我在本地试过了,效果很好!!!

希望对你有帮助。

【讨论】:

以上是关于使用 Smarty 解码 json 文件的主要内容,如果未能解决你的问题,请参考以下文章

Smarty模本引擎

foreach和section的区别

在 smarty 模板中创建一个数组? [复制]

smarty 模板页面里创建数组

php smarty前后台模板路径的配置问题

smarty模板内容