【问题标题】:Parse json using Mustache使用 Mustache 解析 json
【发布时间】:2013-02-24 15:38:30
【问题描述】:

我有这个 JSON:

{ 
status: "ok", 
posts: [ { 
          id: 1362, 
          type: "ser", 
          slug: "av-ss-xiii-3",

           fields: { 
                     price: [ "550" ], 
                     sale: [ "rent" ] 
            } 
       } ]
}

我用 mustache 用这种方式解析它,但正如你所见...fields 不是一个对象数组,它是一个具有两个属性和数组值的对象...

{{#posts}}
<h1>{{type}}</h1>
        {{#fields}}
            <p> {{price}}:{{value}}</p>
         {{/fields}} 
{{/posts}}

我认为我在解析过程中会出错,因为它不适用于价格值。

【问题讨论】:

    标签: ajax json parsing jquery mustache


    【解决方案1】:

    您的模板即将生效。我可以看到的问题是 {{value}} 需要字段对象中不存在的键。您的模板当前输出带有冒号的价格,然后什么也不输出:

    <h1>ser</h1>
    <p> 550 :</p>
    

    也许您认为 {{value}} 会输出 55​​0,或者您的意思是输出销售价值。在这两种情况下,将值包装在数组中有点奇怪:[“550”]。不过这并不重要,因为每个元素中只有一个元素,这根本不会使您的模板复杂化。我只能猜测您想要的输出是什么,但请允许我在一个工作示例中演示您的模板。

    {{#posts}}
        <h1>{{type}}</h1>
        {{#fields}}
        <p> {{price}} : {{sale}}</p>
        {{/fields}}
    {{/posts}}
    

    这将为您的数据输出以下 HTML:

    <h1>ser</h1>
    <p> 550 : rent</p>
    

    这里有一个 jsFiddle 来说明:template with multiple posts

    我冒昧地制作了第二个帖子对象来演示您的数据如何使用集合呈现。我还猜测您可能打算同时输出价格和销售值。

    我想您已经理解了这一点,但要明确一点,{{#fields}} ... {{/fields}} 的工作方式类似于条件,因为字段是对象而不是数组。没关系。如果字段是假的(例如,未定义或假),您的模板将不会呈现 p 元素。

    请注意,我在 jsFiddle 中使用了 jQuery,但只是为了方便访问模板和 DOM 元素。

    希望对您有所帮助,但如果您有任何问题,请告诉我。如果这不是您要查找的内容,请编辑您的问题以描述您想要的输出。

    【讨论】:

      【解决方案2】:

      最后我找到了...这是一个“方法”的问题,使用 .toHtml 它对数组没有任何作用...使用 .render 它工作正常! 谢谢

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-02-12
        • 2013-06-24
        相关资源
        最近更新 更多