¿Alguien sabe cómo convertir una tabla de valores HTML en un buen objeto JSON para ser manipulado con jQuery?Convierta datos de una tabla HTML en un objeto JSON en jQuery
Respuesta
¿Una tabla HTML? ¿Te gusta, todos los contenidos de <td>
en una matriz de 2 d?
var tbl = $('table#whatever tr').map(function() {
return $(this).find('td').map(function() {
return $(this).html();
}).get();
}).get();
Entonces sólo tiene que utilizar $ .json (o cualquier biblioteca que desea) para convertir eso en una cadena JSON.
edición — re-escrito para usar el nativo (shim here) .map()
del prototipo matriz:
var tbl = $('table#whatever tr').get().map(function(row) {
return $(row).find('td').get().map(function(cell) {
return $(cell).html();
});
});
El .map()
función jQuery tiene la "característica" de aplanar las matrices devueltas en la matriz resultado. Es decir, si la función de devolución de llamada devuelve un valor que es en sí mismo una matriz, en lugar de que la matriz devuelta se convierta en el valor de una celda del resultado .map()
, sus elementos se agregan al resultado.
puede trabajar para utilizar la versión original de jQuery y simplemente envolver una matriz extra alrededor de los valores devueltos.
La broma aquí puede ser que esto realmente no funciona. El método '.map()' de jQuery tiene la característica (bastante cuestionable, si me preguntas) de aplacar las matrices devueltas. Sin embargo, este enfoque básico funcionaría con el '.map()' nativo que proporcionan los nuevos entornos de JavaScript a través del prototipo de Array. – Pointy
¡Es muy útil! BTW @Pointy, ¿qué pasa si el TD tiene una sola clase en él, por ejemplo,
, puedo convertirlo a json, por lo que el nombre de la clase se convirtió en el nombre de la propiedad como ese ==> "mensaje": "bah bah bah ...", muchas gracias –@VirtualJasper sí, ciertamente podrías hacer eso, pero tu necesidad de construir un objeto para cada celda. Haría una nueva pregunta. – Pointy
Necesitaba lo mismo, excepto con la capacidad de ignorar columnas, anular valores y no confundir con tablas anidadas. Terminé de escribir un plugin de jQuery mesa-a-JSON:
https://github.com/lightswitch05/table-to-json
Todo lo que tiene que hacer es seleccionar su mesa usando jQuery y llame al plugin:
var table = $('#example-table').tableToJSON();
Aquí es una demostración de en acción:
Lo malo es que si hay una etiqueta html dentro de la celda, se reemplazará con una cadena vacía. –
@JerryLiang hay una opción 'allowHTML' para conservar las etiquetas HTML – lightswitch05
@ lightswitch05 en su jsfiddle si la tabla contiene un menú desplegable que la forma de obtener solo el valor seleccionado en json ... (En mi caso, senario es lo mismo que usted dijo que también funciona bien su violín, pero en mi tabla en más columna de Estado (menú desplegable) que en json todos los datos brindados para dropdown.plz ... Gracias) –
Qué quiere decir la siguiente situación?
Dado:
A1 B1 C1 ...
A2 B2 C2 ...
...
sea necesario:
{"1": ["A1", "B1", "C1", ...],
"2": ["A2", "B2", "C2", ...], ...}
a fin de utilizar la siguiente función que crea una función JSON-Cadena válida sin arrastre "":
function html2json() {
var json = '{';
var otArr = [];
var tbl2 = $('#dest_table tr').each(function(i) {
x = $(this).children();
var itArr = [];
x.each(function() {
itArr.push('"' + $(this).text() + '"');
});
otArr.push('"' + i + '": [' + itArr.join(',') + ']');
})
json += otArr.join(",") + '}'
return json;
}
{ "0":"[
['Product','Available','Issue','With Store'],
['GV Rs. 100/-','4461','0','226'],
['PV RED','8','0','0']
]"
}
¿cuál es la función de este json – user6379621
- 1. Convierta datos json en una tabla html
- 2. Convierta objeto en cadena JSON
- 3. Convierta un conjunto de jQuery en HTML
- 4. JQuery publicar objeto JSON en un servidor
- 5. Powershell: Convierta un objeto en una cadena
- 6. Convierta cualquier objeto a HTML bonito en java
- 7. Jquery Cada objeto JSON
- 8. extracción de datos de objeto JSON en jQuery o JS
- 9. Convierta JSON a CSV
- 10. Rellenar una tabla desde JSON con jQuery
- 11. jquery save json objeto de datos en cookie
- 12. jQuery HTML a JSON
- 13. Tabla HTML a JSON
- 14. Convierta un control HTML (div o tabla) en una imagen usando C#
- 15. ¿Cómo ignoro HTML al filtrar una tabla de datos jQuery?
- 16. Convierta cualquier objeto en un byte []
- 17. Convierta un esquema JSON en una clase python
- 18. Cómo convertir json en tabla de datos?
- 19. Convierta js Array() en el objeto JSon para utilizar con JQuery .ajax
- 20. Python: Convierta JSON (devuelto por una URL) en la Lista
- 21. jQuery access Objeto JSON
- 22. Convierta un objeto a una cadena XML
- 23. ¿Cómo puedo utilizar un objeto JSON local como fuente de datos para tablas de datos jQuery
- 24. Cómo analizar un objeto json usando jquery
- 25. Enlazar objeto JSON al elemento HTML
- 26. Pasando datos JSON a .getJSON en jQuery?
- 27. Cómo puedo insertar un objeto json en una tabla sqlite en javascript, phonegap (cordova)
- 28. Manejo de datos en un objeto PHP JSON
- 29. Obtener datos de la tabla HTML en una tabla de datos
- 30. Convierta una cadena en un objeto jQuery y seleccione el elemento interno
¿Qué quieres decir con "mesa"? Tabla de base de datos? Tabla HTML? – Sampson
posible duplicado de [Iterar a través de la tabla html usando jQuery, convirtiendo los datos de la tabla en JSON] (http://stackoverflow.com/questions/1872485/iterate-through-html-table-using-jquery-converting-the- data-in-the-table-into-js) –