3

I came across a case where I have to convert an HTML table data into JSON. In this process I have to iterate through the table and convert one by one (row) into an array and then convert the whole array into JSON. How do I iterate through the table (each row and column)?

1

3 Answers 3

8

First as fredrik pointed out we need to include https://github.com/douglascrockford/JSON-js.

Second we can use jQuery.fn.map and jQuery.fn.get to create an array of arrays (the tr:s) which contains the jQuery.fn.text content of the td elements:

var AoA = $('table tr').map(function(){
    return [
        $('td',this).map(function(){
            return $(this).text();
        }).get()
    ];
}).get();
var json = JSON.stringify(AoA);
Sign up to request clarification or add additional context in comments.

Comments

4

You also need to convert the JavaScript array (also work on objects, strings, etc.) into a JSON serialized string.

Add this to your page (will be added to jQuery soon):

<script type="text/javascript" src="http://json.org/json2.js"></script>

And then serialize your array:

JSON.stringify(myTable)

Comments

4

Something like this? Fetching the content of each td into a myTable[rowIx][tableIx] array.

var myTable = [];
$('#myTable tr').each(function (i, tr) {
    var myTr = [];

    $('td', tr).each(function(j, td) {
        myTr.push($(td).html());
    });

    myTable.push(myTr);
});

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.