我有一个有效的JSON结果:
{
"metadata": [
{
"name": "md1",
"value": "blah1"
},
{
"name": "md2",
"value": "blah2"
},
{
"name": "tee2",
"value": "blah3"
}
],
"subdata1": [
{
"name": "sd1_1",
"value": "blah1_1"
},
{
"name": "sd1_2",
"value": "blah1_2"
},
{
"name": "sd1_3",
"value": "blah1_3"
},
{
"name": "sd1_4",
"value": "blah1_1"
}
],
"subdata2": [
{
"name": "sd2_1",
"value": "blah2_1"
},
{
"name": "sd2_2",
"value": "blah2_2"
},
{
"name": "sd2_3",
"value": "blah2_3"
}
]
}
通过成功的jQuery .ajax()调用进入:
$.ajax({
url: 'test.json',
type: 'get',
datatype: 'json',
processData: false,
success: function(data) { //do something...};
将整个结果blob到与整体键相关联的值中相对容易:
localStorage.setItem('newtest', data);
这会将我的JSON响应的全部内容保存为一个名为“newtest”的键的值。但是假设我希望每个数组的描述符作为键名,关联数组作为值?在我的示例中,这将给出三个键/值对,每个数组分别保存为与名为“metadata”,“subdata1”和“subdata2”的键相关联的单独字符串值。我做了大量的搜索,但没有找到正确的方法。我们将非常感谢您对解决方案的任何帮助 - 感谢您的关注和帮助。
答案 0 :(得分:1)
您可以执行for循环并对对象进行字符串化。
$.ajax({
url: 'test.json',
type: 'get',
datatype: 'json',
processData: false,
success: function(data) {
for(var key in data){
localStorage.setItem(key, JSON.stringify(data[key]));
}
}
});
然后在你拿到它们时解析
JSON.parse(localStorage.getItem("metadata"));