Twig新手求助:如何通过循环获取数组中的question与answer
解决Twig循环提取问答数据的问题
你的代码没输出是因为没找准数组层级,直接遍历api_response会拿到status和data两个顶级键,但实际问答数据嵌套在data下的分类数组中,再藏在questions子数组里。
正确的Twig代码示例
{# 先校验接口请求状态(可选但推荐) #} {% if api_response.status == 1 %} {# 遍历data下的所有分类(键为随机ID,值是分类详情) #} {% for category_id, category in api_response.data %} <h3>{{ category.name }}</h3> {# 遍历当前分类下的所有问答项 #} {% for qa in category.questions %} <div class="qa-item"> <strong>问题:{{ qa.question }}</strong> <p>回答:{{ qa.answer }}</p> </div> <hr> {% endfor %} {% endfor %} {% else %} <p>接口请求失败,请稍后重试</p> {% endif %}
代码说明
api_response.data是存储分类的核心数组,每个分类以随机ID为键,包含name(分类名)和questions(问答列表)两个字段- 使用
{% for category_id, category in api_response.data %}可以同时获取分类ID和分类内容(如果不需要ID,也可简化为{% for category in api_response.data %}) - 内层循环
{% for qa in category.questions %}直接遍历分类下的问答数组,就能直接提取question和answer字段
原代码无效的原因
原代码直接遍历api_response,第一次循环会拿到status(值为1)和data(分类数组)两个元素。当遍历data时,你仅输出了分类的键名(那些随机ID),没有深入到questions层级,自然看不到问答内容。
内容的提问来源于stack exchange,提问作者Manav Chauhan
相关产品推荐
相关产品推荐

