我在DB中将以下值保存为json_encode。
[{"file_name":"banner.png","file_db_id":"86f98f62-fa4a-31b6-5f53-5a4dba828e8d","file_tag":"Nails"},{"file_name":"Safari.png","file_db_id":"9eb100df-dde7-e141-146f-5a4dba35b83c","file_tag":"Spa"}]
当我在Smarty中获得值时,我将值作为文本。我试图访问如下的值,但它不打印任何东西。
{foreach from=$valueJSON item=fileValues key=FileIndex}
{assign var=fileItem value=$fileValues|json_decode:1}
{$fileItem->file_name}
{/foreach}
在TPL中提供{$valueJSON}
值只会提供上面的确切JSON流。
如何遍历值或将此$valueJSON
更改为正确的json对象以访问值。
编辑: 下面的代码没有打印
{foreach from=$valueJSON item=fileValues}
{$fileValues|json_decode:1}
{/foreach}
如果我删除了json_decode:1,它会显示值[{“file_name”:“banner.png”.....
答案 0 :(得分:0)
将json_decode:1
应用于foreach中的$ valueJSON是否足够?
{foreach from=$valueJSON|json_decode:1 item=fileValues key=FileIndex}
...
我在这种情况下你不需要在assign中使用json_decode。