8
votes

Réglage et obtention de l'objet au stockage local à l'aide de stringify?

Création d'un objet appelé voiture: xxx pré>

  1. Objet de réglage et stringifiez après la lecture de LocalStorage: P>

    08-21 11:49:14.860: I/Web Console(9642): car after stringify----------------->     {"brand":"Skoda","color":"Red","year":"2012"}
    
  2. Strencez l'objet et le réglage de l'objet à localStorage après: localstorage.settem ('voiture', json.stringify (voiture)); voiture = localtstorage.getem ("voiture"); code> p> li> ol>

    voiture après stringify ------------------> "{\" marque \ ": \" Skoda \ ", \" Color \ ":" Rouge \ ", \" année \ ": \" 2012 \ "}" au fichier: /// android_asset / www / ... p>

    Question 1: Pourquoi est-ce que cela fait la différence quelle est la différence quelle est la différence Vous stringifiez l'objet? p>

    Question 2: Pourquoi ne puis-je pas utiliser objet strielifié comme celui-ci: p> xxx pré>

    console.log ("car.brand- ----> "+ voiture.brand); Car.name -----> indéfini p> p>


0 commentaires

4 Réponses :


10
votes

Vous ne pouvez pas stocker l'objet JavaScript est localStorage, Voir cette question . Utilisez donc votre deuxième option. Premier stringifiez l'objet le stocker. Et plus tard, choisissez-le et analysez-le à un objet JavaScript. P>

localStorage.setItem('car',JSON.stringify(car));
carString = localStorage.getItem('car');
car = JSON.parse(carString);
console.log(car.brand); // Skoda


0 commentaires

18
votes

De ma compréhension, vous ne pouvez pas utiliser votre objet strictif une fois que cela a été strongifié car ce n'est plus un objet. C'est une chaîne.

Alors, quand vous essayez de faire car.brand sur la chaîne, il n'y a pas de propriété marque .

personnellement, bonne pratique À mon avis, il serait à faire. xxx

ceci signifie que l'objet de la voiture n'est maintenant pas une chaîne mais un objet.

Lorsque cela fait aussi Stockage local à l'aide de stringify et de lecture à l'aide d'analyses.


0 commentaires

0
votes

J'étais confronté à ce même problème récemment. Découvrez ce script que j'ai écrit.
https://github.com/andresgallo/trustorage

Il permet de stockage et de récupération d'objets à l'intérieur du stockage local. Il retournera des objets comme des objets automatiquement si besoin d'être. L'autre chose est que vous définissez également et obtenez des articles dans un objet imbriqué. La meilleure partie de tout est que c'est un petit script.


0 commentaires

0
votes

Les derniers navigateurs prennent désormais en charge localStorage code> comme objets nativement. J'ai testé cela avec Chrome V44 et Firefox V34:

localStorage
Storage {debug: "undefined", uid: "3", length: 2} 

typeof localStorage
"object"


1 commentaires

En fait, LocalStorage lui-même est un objet (c'est ce que votre exemple ci-dessus montre), mais il ne stocke toujours que vos données comme chaînes. Vous pensez peut-être à l'API de stockage de Chrome, Chrome.Storage , qui est identique à LocalStorage, mais avec certaines extensions, y compris la possibilité de stocker des objets de manière nativement: développeur.chrome.com/extensions/storage (et probablement Firefox a quelque chose de similaire, bien que je n'ai pas vérifié.)