2012-05-10 9 views
5

Así que en javascript que tienen una matriz que se ve más o menos así:¿Almacena una matriz de javascript que contiene objetos en una base de datos MYSQL?

[{x1: 0, x2: 2000, Y: 300}, {x1: 50, x2: 250, Y: 500}]

Y me gustaría almacenarlo en un solo campo en mi base de datos. Pensé en hacer una cadena de alguna manera y luego guardarla como texto, pero realmente no conozco una manera muy eficiente e "inteligente" de hacerlo. También escuché del tipo de campo VARBINARIO, pero no tengo idea de cómo escribir y objetar/ordenar en uno de esos y cómo leerlo ...

Lo que realmente preferiría sería si fuera automáticamente ser leído como una matriz. Mi MYSQL-plugin (o como sea que se llama en js) devuelve mis preguntas como las matrices de objetos como así:

[{id: 0, bla: "texto"}, {id: 0, bla:" text "}]

Para una consulta en una tabla con las columnas id y bla.

Bien, digo que mi matriz se almacena en bla, me gustaría que el objeto que tengo se vea exactamente así cuando se devuelve (sin embargo, si eso no es posible, estoy bien con una solución alternativa).

[{id: 0, bla: [{x1: 0, x2: 2000, y: 300}, {x1: 50, x2: 250, y: 500}]}, {id: 0, bla: [{x1: 0, x2: 2000, Y: 300}, {x1: 50, x2: 250, Y: 500}]}]

Así que básicamente me gustaría tener una matriz que contiene dos objetos, cada uno tiene las propiedades bla e id, donde bla es una matriz de objetos con las propiedades x1, x2 e y.

+0

Depende de lo que quiera hacer con el valor en la base de datos. Si no desea consultar ese campo, puede convertir la matriz a JSON y almacenarla como texto. Sin embargo, si desea realizar consultas sobre los datos, cree los campos adecuados en la tabla. –

+1

¿Por qué no puedes simplemente almacenar la matriz como lo hiciste con JSON? – jcolebrand

+0

Lo que está buscando es [JSON] (http://json.org/) – Andreas

Respuesta

10

alguna manera lo que es una cadena y luego guardarlo como texto, pero no se sabe muy bien de una manera muy eficiente y "inteligente" para hacer eso.

Guarda la cadena como JSON, como esto:

var myArr = [{x1:0,x2:2000,y:300},{x1:50,x2:250,y:500}]; 
myArrString = JSON.stringify(myArr); 

Más tarde, cuando llegue a la cadena JSON de vuelta de MySQL, se puede convertir de nuevo en una matriz con JSON.parse(), así:

var myArr = JSON.parse(myArrString) 

Y sí, si usted se está preguntando, JSON funcionalidad se ha añadido a la base de código estándar de Javascript: eso es lo popular que es.

+0

Nunca había mirado este JSON mucho antes, pero parece interesante, así que supongo que podría intentarlo ... – Wingblade

+0

Es muy simple, ya te dije todo lo que necesitas saber. :) –

+0

Eso es realmente todo? Entonces, JSON solo tiene las dos funciones JSON.stringify() y JSON.parse()? Agradable y simple, justo como me gusta. – Wingblade

Cuestiones relacionadas