2015-09-24 3 views
0

Можно ли преобразовать таблицу HTML в JSON как это:Преобразование HTML таблицы в Json

Имя Пол Возраст

John M 18

{ 
      "name": "John", 
      "Gender": "M", 
      "Age": "18" 
     }, 

программка, что мы использует генерирует нам HTM-файл, который я хочу преобразовать. Но я никогда не видел такого формата раньше: D. Большую часть времени я разработчик iOS. Моя таблица в HTML выглядеть следующим образом:

<TABLE border="3" rules="all" bgcolor="#E7E7E7" cellpadding="1" cellspacing="1"> 
<TR> 
<TD align=center><font size="3" face="Arial"> 
Date 
</font> </TD> 
<TD align=center><font size="3" face="Arial"> 
<B>Teacher</B> 
</font> </TD> 
<TD align=center><font size="3" face="Arial"> 
? 
</font> </TD> 
<TD align=center><font size="3" face="Arial"> 
Hour 
</font> </TD> 
<TD align=center><font size="3" face="Arial"> 
Subject 
</font> </TD> 
<TD align=center><font size="3" face="Arial"> 
Class </font> </TD> 
<TD align=center><font size="3" face="Arial"> 
Room 
</font> </TD> 
<TD align=center><font size="3" face="Arial"> 
(Teacher) 
</font> </TD> 
<TD align=center><font size="3" face="Arial"> 
(Room) 
</font> </TD> 
<TD align=center><font size="3" face="Arial"> 
XYY 
</font> </TD> 
<TD align=center><font size="3" face="Arial"> 
<B>Information</B> 
</font> </TD> 
<TD align=center><font size="3" face="Arial"> 
(Le.) nach 
</font> </TD> 
</TR><TR> 
<TD align=center><font size="3" face="Arial"> 
24.9. 
</font> </TD> 
<TD align=center><font size="3" face="Arial"> 
<B><strike>Dohe</strike></B> 
</font> </TD> 
<TD align=center><font size="3" face="Arial"> 
Free 
</font> </TD> 
<TD align=center><font size="3" face="Arial"> 
1 
</font> </TD> 
<TD align=center><font size="3" face="Arial"> 
<strike>Math</strike> 
</font> </TD> 
<TD align=center><font size="3" face="Arial"> 
(9) 
</font> </TD> 
<TD align=center><font size="3" face="Arial"> 
--- 
</font> </TD> 
<TD align=center><font size="3" face="Arial"> 
<strike>Dohe</strike> 
</font> </TD> 
<TD align=center><font size="3" face="Arial"> 
A001 
</font> </TD> 
<TD align=center>&nbsp;</TD> 
<TD align=center>&nbsp;</TD> 
<TD align=center><font size="3" face="Arial"> 
Free. 
</font> </TD> 
</TR><TR> 
+0

С небольшой дополнительной работы, чтобы передать результирующий объект JSON, это может помочь вам: https://github.com/Sergeon/jQuery-tableSerializer – Sergeon

+0

Возможный дубликат: http://stackoverflow.com/questions/6271856/html-table-to-json. –

ответ

1

JavaScript:

(function() { 
    var jsonArr = []; 
    var obj = {}; 
    var thNum = document.getElementsByTagName('th').length; 
    var arrLength = document.getElementsByTagName('td').length; 

    for(i = 0; i<arrLength;i++){ 
     if(i%thNum==0){ 
      obj = {}; 
     } 
     var head = document.getElementsByTagName('th')[i%thNum].innerHTML; 
     var content = document.getElementsByTagName('td')[i].innerHTML; 
     obj[head] = content; 
     if(i%thNum==0){ 
      jsonArr.push(obj); 
     } 
    }   
    document.write("<br>"+JSON.stringify(jsonArr)); 
})(); 

http://jsfiddle.net/decv1vs2/1/

Или в вашем случае:

http://jsfiddle.net/decv1vs2/2/ (изменить заголовки или добавить классы)

+0

Танк вас так много! Это также можно преобразовать IST в Json, как это: '[{ \t \t "Люди": { \t \t \t "1": { \t \t \t \t "Дата": " 24.9", \t \t \t \t "Учитель": "Dohe"} \t \t \t "2": { \t \t \t \t "Дата": "23,9", \t \t \t \t "Преподаватель": "Часть"} \t \t \t} \t \t \t }] 'Номер 1, 2 и т.д., должны быть сгенерированы для каждой строки. –

0

Попробуйте это:

$('#btnid').click(function() { 
var table = $('#tableid').tableToJSON(); 
}); 
Смежные вопросы