-3

I have a variable in javascript whose value will be a HTML table like below.

 <table border="1" cellpadding="2" cellspacing="2" dir="ltr" height="76" width="500">
   <tbody>
      <tr>
         <td style="width: 166px;"> <strong>Name</strong> </td>
         <td style="width: 166px;"> <strong>Date</strong> </td>
         <td style="width: 168px;"> <strong>Request Type</strong> </td>
      </tr>
      <tr>
         <td style="width: 166px;"> name1 </td>
         <td style="width: 166px;"> 11th May 2015 </td>
         <td style="width: 168px;"> test </td>
      </tr>
      <tr>
         <td style="width: 166px;"> name2 </td>
         <td style="width: 166px;"> 12th May 2015 </td>
         <td style="width: 168px;"> test </td>
      </tr>
      <tr>
         <td style="width: 166px;"> name3 </td>
         <td style="width: 166px;"> 28th May 2015 </td>
         <td style="width: 168px;"> test </td>
      </tr>
   </tbody>
</table>

Now I need to parse through this table and convert it into an JSON array. any suggestions as how this can be achieved.

Zee
  • 8,420
  • 5
  • 36
  • 58
Gopi Nath
  • 413
  • 3
  • 7
  • 21
  • 1
    Possible duplicate : http://stackoverflow.com/questions/21461102/converting-html-table-to-json – VikrantMore May 08 '15 at 10:41
  • Do you want to return a Javascript object or json? See: [There's no such thing as a JSON Object](http://benalman.com/news/2010/03/theres-no-such-thing-as-a-json/) – Yogi May 08 '15 at 23:41

1 Answers1

1
   $(document).ready(function(){
       var htmlTable ='<table border="1" cellpadding="2" cellspacing="2" dir="ltr" height="76" width="500"> <tbody> <tr> <td style="width: 166px;"> <strong>Name</strong> </td> <td style="width: 166px;"> <strong>Date</strong> </td> <td style="width: 168px;"> <strong>Request Type</strong> </td> </tr> <tr> <td style="width: 166px;"> name1 </td> <td style="width: 166px;"> 11th May 2015 </td> <td style="width: 168px;"> test </td> </tr> <tr> <td style="width: 166px;"> name2 </td> <td style="width: 166px;"> 12th May 2015 </td> <td style="width: 168px;"> test </td> </tr> <tr> <td style="width: 166px;"> name3 </td> <td style="width: 166px;"> 28th May 2015 </td> <td style="width: 168px;"> test </td> </tr> </tbody> </table>';
       htmlTable = $(htmlTable);
       var tableJsonObj = [];
       htmlTable.find("tbody tr").slice(1).each(function(){
           var name = $(this).find("td:eq(0)").text();
           var date = $(this).find("td:eq(1)").text();
           var type = $(this).find("td:eq(2)").text();
           var obj = {name, date, type};
           tableJsonObj.push(obj);          
       });
       console.log(tableJsonObj);    
   });

Demo: http://jsfiddle.net/q9y5qv1n/

Vishwajeet Bose
  • 430
  • 3
  • 12
  • Hi the above code is working but I don't want the headers to be added in the JSON. here even the first row is also getting added – Gopi Nath May 08 '15 at 10:50