Jimothey
Jimothey

Reputation: 2434

Loop through jquery data() object to get keys and values

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.

Upvotes: 2

Views: 8613

Answers (3)

GhostMaster75
GhostMaster75

Reputation: 11

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

Upvotes: 0

Guffa
Guffa

Reputation: 700362

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

Upvotes: 0

Prasenjit Kumar Nag
Prasenjit Kumar Nag

Reputation: 13461

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/

Upvotes: 5

Related Questions