2012-07-03 20 views
19

Estoy usando la biblioteca tag-it para jquery para hacer un sistema de etiquetado (un poco como el stackoverflow).Serializar y deserializar una matriz en javascript

Después de que el usuario escriba sus etiquetas, la biblioteca devuelve una matriz de javascript que quiero guardar en una base de datos MySQL. No encontré una función serialize y unserialize en javascript.

Antes de codificar mi propia función, me gustaría asegurarme de que no estoy reinventando la rueda aquí. Parece una locura que no exista una forma nativa de guardar una matriz en una base de datos y luego usarla nuevamente.

tl; dr => ¿cómo puedo guardar una matriz de javascript en una base de datos MySQL para reutilizarla más tarde?

+1

¿Qué hay de JSON? Depende de cómo quieras guardarlo; ¿realmente desea una sola fila en la base de datos para todas las etiquetas, o desea filas separadas? Parece que sería mucho más fácil buscar por etiqueta si las etiquetas se separaron en filas distintas. – Pointy

+0

Parece ser la mejor manera de hacerlo. Gracias. – Lukmo

+0

OK, bueno como dije, buscar por etiqueta va a ser mucho, mucho más lento si la consulta tiene que excavar a través de una cadena de etiquetas rellenas en una sola columna. – Pointy

Respuesta

41

Puede utilizar JSON.stringify() (MDN docu) y JSON.parse() (MDN docu) para convertir un objeto de JavaScript en una representación de cadena para guardarlo dentro de una base de datos.

var arr = [ 1, 2, 3 ]; 

var serializedArr = JSON.stringify(arr); 
// "[1, 2, 3]" 

var unpackArr = JSON.parse(serializedArr); 
// identical array to arr 

Si su back-end está escrito en PHP, hay métodos similares para trabajar con cadenas JSON ahí: json_encode() (PHP docu) y json_decode() (PHP docu).

La mayoría de los otros idiomas ofrecen funcionalidades similares para cadenas JSON.

+0

Solo quiero señalar que JSON.parse limpiará la salida serializada de una llamada Web Api que usa Newtonsoft.Json.JsonConvert.SerializeObject. En mi caso, tenía una cadena serializada que parecía \t "[" Industria "," Región "," Tema "," Tipo "]", y JSON.parse lo convirtió en la matriz de cadenas deseada. – devinbost

5

¿Qué tal solo JSON ing it?

var arr = [1,2,3]; 
var arrSerialized = JSON.stringify(arr); 
... 

var arrExtracted = JSON.parse(arrSerialized); 

Por cierto, JSON a menudo se utiliza para serializar en algunos otros idiomas, a pesar de que tienen sus propias funciones de números de serie.)

6

Puede usar el formato JavaScript Object Notation (JSON).

Javascript apoya estos métodos:

Cuestiones relacionadas