Festlegen und Abrufen von Objekt an lokalen Speicher mit stringify?

7

Erstellen Sie ein Objekt namens Auto:

%Vor%
  1. Objekt setzen und nach dem Lesen aus localStorage stringieren:

    %Vor%

    Auto nach dem Streichen ----------------- & gt; [Objekt Objekt] bei Datei: /// android_asset / www / ...

  2. Sortiere Objekt und setze Objekt auf localStorage nach ihm: localStorage.setItem('car',JSON.stringify(car)); car = localStorage.getItem('car');

Auto nach dem Streichen ----------------- & gt; "{\" Marke \ ": \" Skoda \ ", \" Farbe \ ": \" Rot \ ", \" Jahr \ ": \" 2012 \ "}" bei Datei: /// android_asset / www /. ..

Frage 1: Warum ändert sich die Reihenfolge, in der Sie das Objekt stringieren?

Frage 2: Warum kann ich ein so beschriftetes Objekt nicht verwenden:

%Vor%

console.log ("car.brand ----- & gt;" + auto.brand); car.name ----- & gt; undefined

    
Sami 21.08.2012, 08:55
quelle

4 Antworten

16

Nach meinem Verständnis können Sie das mit einem String versehene Objekt nicht mehr verwenden, nachdem es mit einem String versehen wurde, weil es kein Objekt mehr ist. Es ist ein String.

Wenn Sie also car.brand für die Zeichenfolge eingeben, gibt es keine Eigenschaft brand .

Persönlich wäre gute Praxis meiner Meinung nach zu tun.

%Vor%

Dies bedeutet, dass das Auto-Objekt jetzt keine Zeichenfolge, sondern ein Objekt ist.

Wenn Sie dies tun, schreiben Sie auch in den lokalen Speicher mit stringify und lesen Sie mit parse.

    
LmC 21.08.2012, 09:01
quelle
8

Sie können das JavaScript-Objekt localStorage nicht speichern, sehen Sie diese Frage .

Also benutze deine zweite Option. Zuerst string das Objekt, das es speichert. Und später hebe es auf und parse es zu einem Javascript-Objekt.

%Vor%     
fredrik 21.08.2012 08:59
quelle
0

Ich war in letzter Zeit mit demselben Problem konfrontiert. Schau dir dieses Skript an, das ich geschrieben habe.
Ссылка

Ermöglicht das Speichern und Abrufen von Objekten im lokalen Speicher. Bei Bedarf werden Objekte automatisch als Objekte zurückgegeben. Die andere Sache ist, dass Sie auch Elemente in einem verschachtelten Objekt setzen und abrufen. Der beste Teil von allem ist, dass es ein kleines Skript ist.

    
Andres Gallo 19.09.2012 12:31
quelle
0

Die neuesten Browser unterstützen jetzt localStorage als Objekte nativ. Ich habe das mit Chrome v44 und Firefox v34 getestet:

%Vor%

Also ab jetzt. Es wird dir gut gehen.

    
Jamie Hutber 21.02.2015 21:31
quelle