Module_Json中的自定义参数(Business Catalyst)

时间:2016-06-13 05:14:18

标签: javascript json business-catalyst

{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吗?

2 个答案:

答案 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可以将数据插入到第一个响应中。