Twig模板如何提取文本字段存储的JSON数据的键与对应值
问题原因
- 你当前拿到的
item.value是JSON格式的字符串类型数据,并非可直接遍历或访问属性的数组/对象,直接遍历自然不生效 - 你误用了过滤器:
json_encode的作用是将数组/对象转换为JSON字符串,和你需要的操作完全相反,你需要用json_decode过滤器将JSON字符串解析为可操作的结构
解决方法
首先使用json_decode过滤器解析字符串,再进行后续操作:
- 解析为对象访问属性
{% set json_data = item.value | json_decode %} {# 直接访问对应键即可 #} 出生日期:{{ json_data.birthDate }} 数值:{{ json_data.amount }}
- 解析为数组访问
如果习惯用数组方式取值,可以给json_decode传第二个参数true:
{% set json_data = item.value | json_decode(true) %} 出生日期:{{ json_data['birthDate'] }} 数值:{{ json_data['amount'] }}
- 遍历键值对
解析完成后再执行遍历操作即可生效:
{% set json_data = item.value | json_decode(true) %} {% for key, value in json_data %} {{ key }} : {{ value }} {% endfor %}
关于数据是否异常
你dump输出的JSON格式合法,不存在异常,只是数据类型为字符串,需要先解析再操作即可。
内容的提问来源于stack exchange,提问作者cervico
相关产品推荐
相关产品推荐

