{Module_JSON}允许您解析Business Catalyst中的json文件,但是,没有文档或功能可以使用液体来利用数据。我试着说支持,但他们说我的问题超出了支持范围。
以下是我想要做的事情:我想通过Json调用数组中的特定项目。
{
"description": "List of a collection of Doughnuts",
"doughnuts": [
{
"id": "5001",
"type": "Plain",
"price": 0
},
{
"id": "5002",
"type": "Glazed",
"price": 1
},
{
"id": "5005",
"type": "Sugar",
"price": 1
},
{
"id": "5007",
"type": "Powdered Sugar",
"price": 1.25
},
{
"id": "5006",
"type": "Chocolate with Sprinkles",
"price": 1.5
},
{
"id": "5003",
"type": "Chocolate",
"price": 2
},
{
"id": "5004",
"type": "Maple Syrup",
"price": 2.25
}
]
}
要解析JSON,你必须这样做:
{module_json,json="/mrbean.json" template="/module_json/template.tpl"}
假设我想解析普通的甜甜圈,我会尝试将参数放在回调函数中,如下所示:
{module_json,json="/mrbean.json" type="plain" template="/module_json/template.tpl"}
什么都没发生。有谁知道我怎么做到这一点?否则,我不明白为什么应该使用Module_Json标签。我应该只使用Ajax吗?
答案 0 :(得分:0)
这里有一个相当明显的例子http://docs.businesscatalyst.com/Developers/liquid/render-your-own-JSON-files-using-module_json 如果您需要任何帮助,请在此处发布。
请在您的问题中加入更多解释。
您是否创建了模板? 请发布您的模板,以便检查您的语法。
如果使用json呈现的数据如下所示{
"description":"List of a collection of Products",
"products":[
{
"id":"SLI123",
"type":"Toy",
"price":20
},
{
"id":"SLI124",
"type":"Shirt",
"price":40
},
那么你的液体渲染可以是这样的
<div>{{this.description}}</div>
<ul> {%; for products in this.products %}
<li id={{product.id}} type={{product.type}}>
{%; if product.price == 20 %}
Price: Only ${{product.price}}!!!
{%; else %}
Price: ${{product.price}}
{%; endif %}
</li>
{%; endfor %}
</ul>
答案 1 :(得分:0)
标签不对json的结构做出任何假设。这允许它加载任何有效的json,但是让调用者有责任处理其中的数据。
在这种情况下,您可以使用collection
参数将其分配给变量,如下所示:
{module_json,json="/mrbean.json" collection="food"}
{{ food.doughnuts[0].type }} <!-- Plain -->
(使用template
参数时,指定文件中的数据相同。)
否则,我不明白为什么应该使用Module_Json标签。我应该只使用Ajax吗?
如果更适合您的应用程序让用户在页面加载后再次往返查看数据,那么使用ajax / fetch。
如果应用程序应尽快加载数据,则module_json
可以将数据插入到第一个响应中。