循环遍历jquery data()对象以获取键和值

时间:2012-06-17 13:38:31

标签: javascript jquery json each

我有一个包含json的data()对象。

有没有办法可以遍历对象并获取每个部分的键和值?

这是我到目前为止所做的:

function getFigures() {

var propertyValue = getUrlVars()["propertyValue"];

$.getJSON(serviceURL + 'calculator.php?value=' + propertyValue, function(data) {

    figures = data.figures;
    $.each(figures, function(index, figure) {

        $('#figureList').append('<li> index = ' + data.figures.figure + '</li>');

    });

});

$('#figureList').listview('refresh');

}

json看起来像这样:

{"figures":{"value":"150000","completion":"10.00","coal":"32.40","local":"144.00","bacs":"35.00","landRegistry":"200.00","solFee":"395.00","vatOnSolFees":79,"stampDuty":1500,"total":2395.4}}

道歉,如果它很简单,我是jQuery的新手,并且在SO上找不到任何有帮助的东西。

3 个答案:

答案 0 :(得分:4)

您可以像这样获得keyvalue

$.each(data.figures, function(key, val) {

        console.log('Key: ' + key + '  Val: ' + val)

    });​

所以将代码更改为

 $('#figureList').append('<li>'+ index + ' = ' + figure + '</li>');

演示: http://jsfiddle.net/joycse06/ERAgu/

答案 1 :(得分:0)

参数indexfigure包含参数名称和值。我认为你想将参数连接成字符串:

$('#figureList').append('<li>' + index + ' = ' + figure + '</li>');

另一种方法是创建列表项元素并设置它的文本,如果文本包含任何需要编码的字符,它也会起作用:

$('#figureList').append($('<li/>').text(index + ' = ' + figure));

答案 2 :(得分:0)

function getFigures() {

   var propertyValue = getUrlVars()["propertyValue"];

   $.getJSON(serviceURL + 'calculator.php?value=' + propertyValue, function(data) {

       $.each(data['figures'], function(index, val) {

          here grab "val" is key 

          $.each(data['figures'][index], function(col, valc) {

           here grab "col" is value

          }
       }

   }      

再见