Javascript JSON与动态编码

Javascript JSON与动态编码,javascript,json,forms,dynamic,knockout.js,Javascript,Json,Forms,Dynamic,Knockout.js,使用它来加载json var jsonParsed = JSON.parse(localStorage.getItem('test')); 用这个来保存 var jsonData = ko.toJSON(viewModel); 现在,当我准备它在我知道我可以得到我的价值观,如sooo jsonParsed.AOfficer (如果一名官员是有价值的人) 我知道上面的代码将返回json feild AOfficer的值,但如何让它返回json中所有feild的名称,例如返回它持有的是AOff

使用它来加载json

var jsonParsed = JSON.parse(localStorage.getItem('test'));
用这个来保存

var jsonData = ko.toJSON(viewModel);
现在,当我准备它在我知道我可以得到我的价值观,如sooo

jsonParsed.AOfficer
(如果一名官员是有价值的人) 我知道上面的代码将返回json feild AOfficer的值,但如何让它返回json中所有feild的名称,例如返回它持有的是AOfficer而不是它的值

我想知道这一点,因为我正在使用json feild name作为表单id和value作为表单值动态创建表单


感谢使用
进行带可选
的in
循环。hasOwnProperty
检查以循环对象的属性。

使用
进行带可选
的in
循环。hasOwnProperty
检查以循环对象的属性。

假设jsonParsed类似于:

var field = {
    "field1": "Test data",
    "field2": "Test data"
};
你可以做:

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

它通过所有顶级对象道具进行迭代,并返回其名称和值。

假设jsonParsed类似于:

var field = {
    "field1": "Test data",
    "field2": "Test data"
};
你可以做:

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

它通过所有顶级对象道具进行迭代,并返回其名称和值。

答案绝对正确。但为了澄清,它是这样做的:for(i in jsonParsed){if(jsonParsed.hasOwnProperty(i){console.log('fieldname:'+i');console.log('fieldvalue:'+jsonParsed[i]);}}答案绝对正确。但为了澄清,它是这样做的:for(i in jsonParsed){if(jsonParsed.hasOwnProperty(i){console.log('fieldname:'+i);console.log('Field value:'+jsonParsed[i]);}}}+1,但请编辑您的代码以将本地分配添加到循环索引,以防止其泄漏到全局范围(即(字段中的var字段))。+1,但请编辑您的代码以将本地分配添加到循环索引,以防止其泄漏到全局范围(即(字段中的var字段))。注意:您的问题与JSON无关。JSON只是数据的文本表示形式。您似乎在寻求一种方法来访问具有未知名称的对象属性。阅读可能也会有所帮助。注意:您的问题与JSON无关。JSON只是一种文本表示形式您似乎在寻求一种方法来访问具有未知名称的对象属性。阅读可能也会有所帮助。