javascript - dust js 循环遍历 json 中的对象

标签 javascript json dust.js

我在使用 Dust.js 循环 json 时遇到问题,这是我的 json

{
   "Undergraduate":{
      "metaid":"0770",
      "Offcampus":{
         "FeesItems":{
            "tuition":{
               "label":"Tuition Fees",
               "value":"5,870"
            },
            "comprehensive":{
               "label":"Comprehensive Fees",
               "value":"2,141"
            },
            "studentActivity":{
               "label":"Student Activity Fees",
               "value":"190"
            },
            "academicExcellence":{
               "label":"Academic Excellence Fee",
               "value":"225"
            },
            "room":{
               "label":"Room",
               "value":"0"
            },
            "board":{
               "label":"Board",
               "value":"0"
            },
            "livingAllowance":{
               "label":"Living Allowance",
               "value":"9,738"
            }
         }
      } 
   }
}

我想循环遍历 FeesItems 对象内的项目..

{#Undergradaute.Offcampus.FeesItems}
  {label}, {value}{~n}   <!-- What should be given in this line? -->
{/Undergradaute.Offcampus.FeesItems}

最佳答案

只要 FeesItems 是一个数组,这就会循环遍历 FeesItems 中的项目,从 JSON 渲染 labelvalue FeesItems= []

http://akdubya.github.io/dustjs/#guide

{
   "Undergraduate":{
      "metaid":"0770",
      "Offcampus":{
         "FeesItems":[{
               "label":"Tuition Fees",
               "value":"5,870"
            },
            {
               "label":"Comprehensive Fees",
               "value":"2,141"
            },
            ...
]
         }
      } 
   }
}

以下是灰尘指南的示例:

{#friends}
  {name}, {age}{~n}
{/friends}

{
  friends: [
    { name: "Moe", age: 37 },
    { name: "Larry", age: 39 },
    { name: "Curly", age: 35 }
  ]
}

更新1:

由于您不想更改原始 JSON,因此您需要从原始 JSON 生成一个新对象,例如

var newModel =  Object.keys(obj.Undergraduate.Offcampus.FeesItems).map(function(prop){ return obj.Undergraduate.Offcampus.FeesItems[prop] });

请注意,如果尝试以下操作,JavaScript 将保留对对象的引用:

originalObj.Undergraduate.Offcampus.FeesItems.board.label = "Costa Rica"
console.log(newModel[5].label);

关于javascript - dust js 循环遍历 json 中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21049373/

相关文章:

javascript - 使用 Axios 和最终形式 promise 从捕获中返回

python - 如何让 python base64 编码与 json 兼容?

node.js - 在node.js和express3.x中使用dustjs-linkedin模板

dust.js - DustJs 中的函数调用和检查结果

javascript - 捕获多次出现的 javascript 正则表达式

javascript - 可以根据值更改文本颜色吗? ( react native )

javascript - "$(document).on"在 event.stopPropagation 之后不触发和 "$(a).on"不触发新元素

javascript - 如何使用附加属性扩展映射的 knockout View 模型 "on the fly"?

javascript - 将 json 数组转换为查询字符串给出 null

java - Spring 不发送 JSON 响应中的所有字段