2012-07-03 12 views
19

Używam biblioteki tag-it dla jquery do tworzenia systemu tagowania (trochę jak stackoverflow).Serializowanie i odserializowanie tablicy w javascript

Po wpisaniu przez użytkownika jego znaczników biblioteka zwraca tablicę javascript, którą chcę zapisać w bazie danych MySQL. Nie znalazłem funkcji serializowania i unserializacji w javascript.

Przed zakodowaniem mojej własnej funkcji chciałbym się upewnić, że nie wymyślam tutaj koła. Wydaje się szalone, że nie ma natywnego sposobu zapisywania tablicy w bazie danych, a następnie ponownego jej użycia.

tl; dr => Jak mogę zapisać tablicę javascript w bazie danych MySQL, aby później użyć jej ponownie?

+1

Jak o JSON? To zależy od sposobu, w jaki chcesz go zapisać; czy naprawdę chcesz pojedynczy wiersz w bazie danych dla wszystkich tagów, czy chcesz osobne wiersze? Wygląda na to, że znacznie łatwiej byłoby wyszukiwać według tagów, jeśli tagi zostały podzielone na odrębne wiersze. – Pointy

+0

Wydaje się, że jest to najlepszy sposób na zrobienie tego. Dzięki. – Lukmo

+0

OK, jak już mówiłem, wyszukiwanie według znaczników będzie znacznie, znacznie wolniejsze, jeśli zapytanie będzie musiało przekopać się przez ciąg tagów umieszczonych w jednej kolumnie. – Pointy

Odpowiedz

41

Można użyć JSON.stringify() (MDN docu) i JSON.parse() (MDN docu) do przekształcania obiektu JavaScript w ciągu reprezentującego go przechowywać wewnątrz bazy danych.

var arr = [ 1, 2, 3 ]; 

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

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

Jeśli backend jest napisany w PHP, istnieją podobne metody do pracy z ciągami tam JSON: json_encode() (PHP docu) i json_decode() (PHP docu).

Większość innych języków oferuje podobne funkcjonalności dla ciągów JSON.

+0

Chcę tylko zwrócić uwagę, że JSON.parse wyczyści serializowane wyjście z wywołania Web Api, które używa Newtonsoft.Json.JsonConvert.SerializeObject. W moim przypadku miałem zserializowany ciąg, który wyglądał jak \t "[" Przemysł "," Region "," Temat "," Typ "]", a JSON.parse przekształcił go w pożądaną tablicę ciągów. – devinbost

5

A może po prostu JSON?

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

var arrExtracted = JSON.parse(arrSerialized); 

Nawiasem mówiąc, JSON jest często używany do szeregowania w innych językach, chociaż mają swoje własne funkcje szeregowania.)

6

Można użyć formatu JavaScript Object Notation (JSON).

Javascript obsługuje następujące metody:

Powiązane problemy