Javascript 如何在js中解析json?

Javascript 如何在js中解析json?,javascript,json,Javascript,Json,我需要在循环中解析一个json对象,如{“key1”:“val1”,“key2”:“val2”,“key3”:“val3”} 尝试: var inobj = '[{"key1":"val1","key2":"val2","key3":"val3"}]'; var obj = eval(inobj); for (var i = 0; i < 3; i++) { var key = i; var val = obj[key]; alert

我需要在循环中解析一个json对象,如
{“key1”:“val1”,“key2”:“val2”,“key3”:“val3”}

尝试:

var inobj = '[{"key1":"val1","key2":"val2","key3":"val3"}]';
var obj = eval(inobj);
    for (var i = 0; i < 3; i++) {
        var key = i;
        var val = obj[key];
        alert (key+' = '+val);
    }
var inobj='[{“key1”:“val1”,“key2”:“val2”,“key3”:“val3”}];
var obj=eval(inobj);
对于(变量i=0;i<3;i++){
var-key=i;
var val=对象[键];
警报(键+'='+val);
}

但是我不知道hot to known
obj.length

你可以数一数:

var obj = JSON.parse('{"key1":"val1","key2":"val2","key3":"val3"}');

Object.keys(obj).forEach(function (key) {
    alert(key + " = " + obj[key]);
});
Object.keys(obj).length

请参阅堆栈问题:

您可以计算权限:

Object.keys(obj).length

请参阅堆栈问题:

或简单地
for(obj中的var key){…}
@FelixKling我更喜欢
Object.key(obj).forEach(function(key){…})
方法,因为它创建了一个新范围,避免了
for
循环中固有的提升问题。如果需要一个新范围,那么是的,这是一个不错的方法。。。否则,一个简单的
for
似乎开销较小。是的,我的意思是,在这个例子中,不一定需要一个新的作用域,但我可以想象这个用户的下一个问题是“为什么当我在
for
循环中调用
setTimeout
时,它不像我期望的那样工作…”或者干脆
for(obj中的var key){…}
@FelixKling我更喜欢
Object.keys(obj).forEach(function(key){..})
方法,因为它创建了一个新的作用域,避免了
for
循环固有的提升问题。如果需要一个新的作用域,那么是的,这是一个很好的方法。。。否则,一个简单的
for
似乎开销较小。是的,我的意思是,在这个例子中,不一定需要一个新的作用域,但我可以想象这个用户的下一个问题是“为什么当我在
for
循环中调用
setTimeout
时,它不像我期望的那样工作…”相关:相关:和相关:和