【问题标题】:JSON with Dynamic Coding带有动态编码的 JSON
【发布时间】:2012-06-17 15:36:15
【问题描述】:

使用它来加载 json

var jsonParsed = JSON.parse(localStorage.getItem('test'));

用这个来保存

var jsonData = ko.toJSON(viewModel);

现在,当我准备好它时,我知道我可以得到我的价值观,比如 sooo...

jsonParsed.AOfficer

(如果军官是具有价值的领域) 我知道上面的代码会返回 json 字段 AOfficer 的值,但是我如何让它返回 json 中所有字段的名称,例如返回它包含 Aofficer 而不是它的值。

我想知道这一点,因为我使用 json 字段名称作为表单 ID 和值作为表单值动态创建表单。

谢谢

【问题讨论】:

标签: javascript json forms dynamic knockout.js


【解决方案1】:

假设 jsonParsed 类似于:

var field = {
    "field1": "Test data",
    "field2": "Test data"
};

你可以这样做:

for(var field in fields){
    if(fields.hasOwnProperty(field)){
        console.log(field, fields[field]);
    }
 };

遍历所有顶级对象道具并返回其名称和值。

【讨论】:

  • +1,但请编辑您的代码以将本地分配添加到循环索引,以防止它泄漏到全局范围(即for(var field in fields))。
【解决方案2】:

使用for in 循环和可选的.hasOwnProperty 检查循环对象的属性。

【讨论】:

  • 绝对正确的答案。但只是为了澄清,它是这样完成的: for(i in jsonParsed) { if(jsonParsed.hasOwnProperty(i) { console.log('Field name: '+i); console.log('Field value: '+jsonParsed[ i]); } }
猜你喜欢
  • 1970-01-01
  • 2023-03-26
  • 2013-08-30
  • 2016-11-04
  • 2017-07-10
  • 2015-10-08
  • 2011-06-08
  • 2011-03-08
  • 1970-01-01
相关资源
最近更新 更多