Convertir una tabla en HTML a JSON.

Escenario: Tienes que convertir una tabla en HTML al formato JSON y no tienes acceso a la base de datos que genera la tabla o la tabla es de un tercero. Tampoco quieres digitar los miles de registros a mano.

Hay varias maneras de lograr esto. Una forma es usar JavaScript y jQuery, existen vídeos en Internet que explican esta manera. Otra opción es usar un plugin de jQuery pero estas técnicas no funcionan si la tabla no está correctamente escrita o en inglés no está “well-formed”. Puede que el resultado no sea el esperado o salga un error y no obtengas ningún resultado.

Well-formed: significa que las etiquetas abran y cierren, que el anidamiento esté correcto y que los elementos vacíos terminen correctamente).

Ejemplo:

Correcto:

<b>Hola</b>

Incorrecto:

<b><i>Hola</b>

Elementos vacíos correctamente terminados:

<img />, <br />, <hr />

Anidación incorrecta:

<p>Normal <em>emphasized <strong>strong emphasized</em> strong</strong></p>

Volviendo al tema si la tabla HTML no está bien creada usar JavaScript para obtener los valores probablemente no funcione.

En este caso una solución (no la más elegante ni la mejor probablemente) es valerse del navegador para lidiar con la tabla. En otras palabras los navegadores “corrigen” y “pasan por alto” las reglas para un correcto HTML y logran mostrar la tabla (no sé ni como lo logran).

La idea es copiar y pegar desde el navegador la tabla HTML y pasarla a JSON.

Es más fácil decirlo que hacerlo y una forma que he encontrado es valerse de Excel y pegar la tabla HTML allí (claro, es que no pude con Word).

Luego en Excel graba la hoja de cálculo como “valores separados por comas” o CSV.

Finalmente busca un conversor de CSV a JSON en Internet.

En mi caso utilicé está página web: http://www.convertcsv.com/csv-to-json.htm

Subes el archivo con formato CSV y si quieres te pones a jugar con las opciones. En mi caso funcionó a la primera.

Aquí unas imágenes de la página web:

csv2json

 

csv2json2

En la imagen superior pueden ver el resultado la conversión en JSON.

No es una solución muy sofisticada pero hace el truco. Si conocen de una mejor manera de pasar una tabla HTML (mal formada) a JSON favor poner un comentario.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s