2

I have a data() object containing some json.

Is there a way I can loop through the object and grab each parts key and value?

This is what I have so far:

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');

}

The json looks like this:

{"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}}

Apologies if its simple, I'm new to jQuery and couldn't find anything on SO that helped.

Brian Tompsett - 汤莱恩
  • 5,753
  • 72
  • 57
  • 129
Jimothey
  • 2,414
  • 9
  • 41
  • 66

3 Answers3

5

You can get the key and value like this

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

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

    });​

So change your code to

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

Demo: http://jsfiddle.net/joycse06/ERAgu/

Prasenjit Kumar Nag
  • 13,391
  • 3
  • 45
  • 57
0

The parameters index and figure contains the parameter name and value. I think that you want to concatenate the parameters into the string:

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

An alternative is to create the list item element and set the text of it, that would also work if the text contains any characters that need encoding:

$('#figureList').append($('<li/>').text(index + ' = ' + figure));
Guffa
  • 687,336
  • 108
  • 737
  • 1,005
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

          }
       }

   }      

bye