首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在智能模板中解析/解码JSON对象?

如何在智能模板中解析/解码JSON对象?
EN

Stack Overflow用户
提问于 2013-08-04 12:23:55
回答 2查看 23.6K关注 0票数 8

我的模板文件中有以下代码:

代码语言:javascript
复制
{foreach from=$items item=entry}
  <pre>
    {$entry->nb_persons|@print_r}
  </pre>
{/foreach}

输出是(json字符串):

{"ip":"12.12.12.12","date":1375616434,"cartitems":["foo:1"],"company":"dsad","FirstName":"sad","LastName":"asdsad","street":"","postcode":"","city":"","country":"Andorra","phone":"456456","fax":"","email":"sad@sad.com","comefrom":"google","request":"","message":"sadads"}

我想打印分开的每个元素,例如:

{$entry->nb_persons.company}

应该给我-> "dsad“

但这不管用,我也不知道为什么。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-04 12:45:40

JSON字符串就是字符串。要访问其成员,必须从此字符串创建数组/对象:

代码语言:javascript
复制
{foreach from=$items item=entry}
  {* create array from JSON string*}
  {assign var=person value=$entry->nb_persons|json_decode:1}
  <pre>
    {$person.company}
  </pre>
{/foreach}
票数 16
EN

Stack Overflow用户

发布于 2013-08-04 12:54:20

我不是Smarty方面的专家,但我认为您正在尝试访问JSON结构化字符串的属性。

尝试先将它解码到一个对象,然后访问它。

就像这样:

代码语言:javascript
复制
{foreach $items as $entry}
  {assign var="person" value="{$entry->nb_persons|@json_decode}"}
  <pre>
    {$person.company}
  </pre>
{/foreach}

不过,我没试过。

祝好运!

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18042894

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档