2013-01-21 1 views
16

Ho un array associativo come segue:Javascript: il modo migliore per convertire l'array associativo in stringa e viceversa?

var AssocArray = { id:0, folder:'Next', text:'Apple' }; 

Ora ho bisogno di conservare questo in un database, quindi immagino vorrei solo convertire questo in una stringa, memorizzarlo nel database e quindi estrarlo il database e rimettilo in un array javascript più tardi.

Il problema è che il numero effettivo di elementi e le variabili di matrice saranno diverse ogni volta (quindi perché volevo archiviarlo come una stringa lunga).

Qual è il modo migliore per convertire questo array associativo in una stringa, e viceversa, come convertire una stringa in un array associativo?

+0

Btw, in JavaScript tutti gli oggetti sono array associativi. –

+1

Per essere chiaro sulla terminologia, JS non ha array associativi come PHP. Ciò che mostra il codice è un oggetto con proprietà. Per quanto riguarda la lingua, questo JS è più vicino a '$ obj = new stdClass(); $ obj-> id = 0; ... '. Generalmente puoi convertirli avanti e indietro, ma chiamarli array associativi non è corretto. – loganfsmyth

+0

@loganfsmyth In JavaScript, tutti gli oggetti sono * di fatto * array associativi, non è così? Le specifiche ECMAScript non usano il termine "array associativo" afaik, ma il modo in cui gli oggetti sono spec'd, sono in pratica array associativi. –

risposta

37

Non c'è niente di meglio che JSON per esso:

var str = JSON.stringify(obj); 
// >> "{"id":0,"folder":"Next","text":"Apple"}" 

var obj = JSON.parse(str); 
// >> Object({ id: 0, folder: "Next", text: "Apple" })