javascript javascript循环通过json响应

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/26910816/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-10-28 06:40:25  来源:igfitidea点击:

javascript loop through json response

javascriptjqueryjson

提问by Leon van der Veen

I want to loop through my json response. My json response looks like this

我想遍历我的 json 响应。我的 json 响应如下所示

{"line":[{"type":"bank","name":"ABN","account":"NL47ABNA0442660960","description":"Bijgewerkt t\/m 30-10-2014","balance":"6.266,55","image":""},{"type":"bank","name":"Rabo","account":"NL89RABO0177896647","description":"","balance":"0,00","image":""}],"total":"6.266,55"}

What I want is a foreach loop through all lines so i get the keys and the values for every line.

我想要的是遍历所有行的 foreach 循环,以便我获得每一行的键和值。

采纳答案by brso05

var json = {"line":[{"type":"bank","name":"ABN","account":"NL47ABNA0442660960","description":"Bijgewerkt t\/m 30-10-2014","balance":"6.266,55","image":""},{"type":"bank","name":"Rabo","account":"NL89RABO0177896647","description":"","balance":"0,00","image":""}],"total":"6.266,55"}; 
   for(var i = 0; i < json.line.length; i++)
   {
       console.log("Type: " + json.line[i].type + " Name: " + json.line[i].name + " Account: " + json.line[i].account + " Description: " + json.line[i].description + " Balance: " + json.line[i].balance + " Image: " + json.line[i].image); 
   }

You can do something like that...

你可以做这样的事情......

回答by Abhitalks

You could iterate like this: (added code-comments for explanation)

您可以像这样迭代:(添加代码注释以进行解释)

var result = document.getElementById("result");
var json = '{"line":[{"type":"bank","name":"ABN","account":"NL47ABNA0442660960","description":"Bijgewerkt t\/m 30-10-2014","balance":"6.266,55","image":""},{"type":"bank","name":"Rabo","account":"NL89RABO0177896647","description":"","balance":"0,00","image":""}],"total":"6.266,55"}';

var obj = JSON.parse(json);
// json object contains two properties: "line" and "total".
// iterate "line" property (which is an array but that can be iterated)
for (var key in obj.line) {
    // key here is the index of line array
    result.innerHTML += "<br/>" + key + ": ";
    // each element of line array is an object
    // so we can iterate over its properties
    for (var prop in obj.line[key]) {
        // prop here is the property
        // obj.line[key][prop] is the value at this index and for this prop
        result.innerHTML += "<br/>" + prop + " = " + obj.line[key][prop];
    }
}
// "total" is a property on the root object
result.innerHTML += "<br/><br/>Total = " + obj.total;
<p id="result"> </p>

Demo Fiddle: http://jsfiddle.net/abhitalks/ajgrLj0h/2/

演示小提琴:http: //jsfiddle.net/abhitalks/ajgrLj0h/2/

.

.

回答by Dastagir

var json = {"line":[{"type":"bank","name":"ABN","account":"NL47ABNA0442660960","description":"Bijgewerkt t\/m 30-10-2014","balance":"6.266,55","image":""},{"type":"bank","name":"Rabo","account":"NL89RABO0177896647","description":"","balance":"0,00","image":""}],"total":"6.266,55"};

if(json.line !== undefined && json.line.length > 0){
    var key,value;
    json.line.map(function(lineObject){        
        for (key in lineObject) {
            value = (lineObject[key] == '')?'unknown': lineObject[key];
            console.log(key+":"+ value);
        }
        console.log("---------------------");
    });
}

http://jsfiddle.net/ddw7nx91/

http://jsfiddle.net/ddw7nx91/

回答by Morrisda

var obj = {"line":[]} //your json here

for(var i=0; i<obj.line.length; i++) {
console.log(obj.line[i].type)
}

obj.line is an array, so you can get his length an cycle it.

obj.line 是一个数组,所以你可以得到他的长度一个循环它。

回答by Oakley

This would create an array of lines each with a keys object and a values object.

这将创建一个行数组,每个行都有一个键对象和一个值对象。

var response = JSON.parse( {'your':'JSON'} );
var lines = [];

$.each( response, function( line ) {//loop through lines in response
    var keys = [];
    var values = [];
    $.each( line, function( obj ) {
        keys.push( Object.keys(obj) );//get keys
        for( var key in obj ) {
            values.push(obj[key]);//get values
        }
    });
    lines.push({ {'keys':keys},{'values':values} });
});