Github Pages中Jekyll Liquid访问JSON对象无返回结果问题求助
解决Github Pages中Liquid遍历JSON对象无返回的问题
嘿,我之前在Github Pages上用Liquid处理JSON数据时也踩过类似的坑,咱们一步步来解决你的问题~
首先确认文件位置是否正确
Github Pages的site.data对象只会读取根目录下_data文件夹里的JSON/YAML/CSV文件。所以你得确保mydata.json是放在_data文件夹中,而不是随便放在根目录或者其他子文件夹里。如果没有_data文件夹,直接新建一个就行。
问题出在Liquid遍历对象的方式上
你的JSON结构里,test是一个键值对对象(item1、item2作为键,对应的值是包含name和number的对象),而不是数组。普通的for item in ...遍历对象时,默认只会拿到键名(也就是item1、item2),而不是对应的值,所以你之前的两种写法都拿不到name。
正确的遍历写法
你需要用Liquid的键值对遍历语法,同时获取键和对应的值:
{% for key, item in site.data.mydata.test %} - {{ item.name }} (对应键: {{ key }}) {% endfor %}
或者用方括号取值的方式:
{% for key, item in site.data.mydata.test %} - {{ item['name'] }} {% endfor %}
这样就能正确输出每个item的name了。
额外验证:确认JSON格式无误
你的JSON代码看起来是合法的,但可以再检查一遍:确保所有引号都是英文双引号,逗号没有多写或少写,括号配对正确。如果JSON有语法错误,Github Pages会解析失败,自然拿不到数据。
测试效果
用上面的正确代码,应该会输出:
- item name (对应键: item1)
- item name (对应键: item2)
内容的提问来源于stack exchange,提问作者Randy Hall
相关产品推荐
相关产品推荐

