export Data in localStorage for later re-import

2019-03-16 13:56发布

I want to export a few items from my localStorage to save it externally but in a format so that I can import it again later.

My attempt was to write executable code that can be pasted later in a textarea. Then the value of that textare will simply be eval()ed.

Problem: The data stored in localStorage were stored as

var data = [];
data.push('sampledata');
data.push({sample: 'object'});
localStorage.setItem('varname',data);

So it contains various chars I don't like, like ', " etc

My (not working) solution so far was:

var container = $('#localDataContainer');
container.append('localStorage.setItem("cockpitLastVisited","' + localStorage.getItem("cockpitLastVisited") + '");<br/>');
container.append('localStorage.setItem("cockpit_services","' + localStorage.getItem("cockpit_services") + '");<br/>');
container.append('localStorage.setItem("cockpit_users","' + localStorage.getItem("cockpit_users") + '");');

If my attempt seems to be OK, what is the best way to create code that can then be executed the way it is?

3条回答
等我变得足够好
2楼-- · 2019-03-16 14:35

Just an improved version of Jeremy. To simplify the process

copy('var data = '+JSON.stringify(localStorage)+';Object.keys(data).forEach(function (k){localStorage.setItem(k, data[k]);});');

Run this in console where you need to export, it copies localstorage content along with code to clipboard and just paste it in the console where you want to import.

查看更多
We Are One
3楼-- · 2019-03-16 14:36

You can encode Objects into Strings using JSON.stringify (object to String) and decode Strings into Objects using JSON.parse (String to Object).

Write to localStorage

localStorage.setItem("varname",JSON.stringify(originalVarname));

Read from localStorage

var originalVarname= JSON.parse(localStorage.getItem("varname"));
查看更多
再贱就再见
4楼-- · 2019-03-16 14:36

Here's how to import/export your entire localStorage

Export

copy(JSON.stringify(localStorage));

This will copy your localStorage to your clipboard. (You need two JSON.stringify()'s to get the quotes escaped.)

Import

var data = JSON.parse(/*paste stringified JSON from clipboard*/);
Object.keys(data).forEach(function (k) {
  localStorage.setItem(k, data[k]);
});
查看更多
登录 后发表回答