Array of JSON objects are stored in HTML5 localStorage
.
For now delimiter is ;
For accessing and modifying array of objects from localStorage
, split(';')
and join(';')
operations used.
However ,delimiter approach looks unstable.
For instance ;
could be met inside objects attribute and split(';')
operation will be uncorrect.
It could be used ;;
for delimiter,but i'm not certain it will be stable also.
Is there any robust way to handle localStorage
presented as array of objects,as far localStorage
saved as String
?
EDIT
one of stoppers is that array of object couldn't be saved to localStorage as classical: "[{},{}]"
localStorage
converts it automatially to String like "{},{}"
my current data within localStorage
:
"{"name":"volvo","id":"033"};{"name":"saab","id":"034"}"
assumption
perhaps,i can add [
at the start and ]
at the end,but it looks not gracefull
The localStorage API in browsers only supports adding information in a key:pair format and the key and the pair should be of type string thus native objects or arrays cannot be stored in the localStorage .
In summary, we can store JavaScript objects in localStorage by first converting them to strings with the JSON. stringify method, then back to objects with the JSON. parse method.
Just convert the objects to JSON strings:
localStorage.setItem("savedData", JSON.stringify(objects));
And vice versa:
objects = JSON.parse(localStorage.getItem("savedData")));
Or you can add multiple objects in the same localStorage value:
localStorage.setItem("savedData", JSON.stringify([object1, object2 /*, etc*/]));
object1 = JSON.parse(localStorage.getItem("savedData"))[0];
object2 = JSON.parse(localStorage.getItem("savedData"))[1];
Here's the DOM storage specification.
You can also access savedData
like this:
localStorage.savedData = "Hello world"
var foo = localStorage.savedData;
This can be used for both getting and setting the data, but it is considered less "safe" than getItem('name');
and setItem('name', 'value');
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With