2012-05-10 65 views
5

Vì vậy, trong javascript Tôi có một mảng trông về như thế này:Lưu trữ một mảng javascript chứa các đối tượng trong cơ sở dữ liệu MYSQL?

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

Và tôi muốn lưu trữ nó trong một trường duy nhất trong cơ sở dữ liệu của mình. Tôi nghĩ về cách nào đó làm cho nó thành một chuỗi và sau đó lưu nó thành văn bản, nhưng tôi không thực sự biết một cách rất hiệu quả và "thông minh" để làm điều đó. Tôi cũng nghe nói về loại trường VARBINARY, nhưng tôi không có ý tưởng làm thế nào để viết và đối tượng/mảng vào một trong những ... Read More được đọc dưới dạng mảng. Plugin MYSQL của tôi (hoặc tuy nhiên được gọi trong js) trả lại các truy vấn của tôi dưới dạng mảng các đối tượng như:

[{id: 0, bla: "text"}, {id: 0, bla: " văn bản "}]

Để truy vấn trong bảng có id nhóm và bla.

Cũng nói mảng của tôi được lưu trữ trong bla, tôi muốn đối tượng tôi nhận được chính xác như thế này ngay khi nó được trả lại (tuy nhiên nếu điều đó là không thể tôi tốt với một giải pháp thay thế).

[{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}]}]

Vì vậy, về cơ bản tôi sẽ nhận được một mảng chứa hai đối tượng, trong đó mỗi thuộc tính có thuộc tính bla và id, trong đó bla là một mảng các đối tượng với các thuộc tính x1, x2 và y.

+0

Tùy thuộc vào những gì bạn muốn làm với giá trị trong cơ sở dữ liệu. Nếu bạn không muốn truy vấn trường đó, bạn chỉ có thể chuyển đổi mảng thành JSON và lưu nó dưới dạng văn bản. Nếu bạn muốn thực hiện truy vấn trên dữ liệu, hãy tạo một trường thích hợp trong bảng. –

+1

Tại sao bạn không thể lưu trữ mảng như bạn đã làm với JSON? – jcolebrand

+0

Điều bạn đang tìm kiếm là [JSON] (http://json.org/) – Andreas

Trả lời

10

bằng cách nào đó tạo chuỗi và sau đó lưu thành văn bản, nhưng tôi thực sự không biết cách rất hiệu quả và "thông minh" để làm điều đó.

Save the chuỗi như JSON, như thế này:

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

Sau đó, khi bạn nhận được chuỗi JSON trở lại từ MySQL, bạn có thể biến nó trở thành một mảng với JSON.parse(), như thế này:

var myArr = JSON.parse(myArrString) 

Và nếu bạn đang băn khoăn, chức năng JSON đã được thêm vào codebase chuẩn của Javascript: đó là mức độ phổ biến của nó.

+0

Chưa bao giờ xem xét JSON này nhiều lắm, nhưng có vẻ thú vị nên tôi đoán tôi có thể thử ... – Wingblade

+0

Rất đơn giản, tôi đã nói với bạn tất cả những gì bạn cần biết. :) –

+0

Đó thực sự là tất cả mọi thứ? Vì vậy, JSON chỉ có hai hàm JSON.stringify() và JSON.parse()? Đẹp và đơn giản, tôi thích nó. – Wingblade

Các vấn đề liên quan