我在尝试将信息输入到输入文本时遇到了一些麻烦,信息来自localstorage:
键=客户端,值:
[{"identification":"123456","firstname":"John","lastname":"White","tel":"123456789"}]
我的问题是如何将标识,名字,姓氏和电话设置为输入类型文本。我试着用这个jquery
$('#name').val(localStorage.getItem("name"));
但我接受了关键,没有价值观。 谢谢你的帮助!
答案 0 :(得分:1)
这是您的localStorage
{client: "[{"identification":"123456","firstname":"John","lastname":"White","tel":"123456789"}]", se:fkey: "65d75836cdfe6220e7d8fd44a52ef14e,1438917914"}
要将其保存到localStorage对象,您需要先将任何对象转换为字符串
你可以使用JSON.stringify(object)
将其保存到localStorage使用localStorage.setItem('key', 'value')
当你想在localStorage
上获取它时你可以使用localStorage.getItem('key')
如果您的项目是转换为字符串的json对象
你可以使用JSON.parse(string)
带回来成为一个json对象
答案 1 :(得分:0)
您应首先记录localStorage
以查看其中存储的内容。
如果值为
,则很奇怪 [{"identification":"123456","firstname":"John","lastname":"White","tel":"123456789"}]
因为只有字符串类型可以存储在localStorage
中。所以你可以通过以下方式存储上面的数组:
localStorage.setItem('key', JSON.stringify(array_above));
执行:
var data = JSON.parse(localStorage.getItem('key'));
当你想要检索它时。
还有什么,您的代码:
$('#name').val(localStorage.getItem('name'));
工作正常。
这是我的jsfiddle demo。
答案 2 :(得分:0)
首先从localStorage获取数据并将它们存储在变量中。然后将您的变量从字符串转换为有效的JSON格式。最后访问所需的数据。这是一个例子:
var client = JSON.parse(storage.getItem(YOUR_CLIENT_KEY));
...
$('#name').val(client[0].firstname);
答案 3 :(得分:0)
本地存储(和会话存储)是键/值存储,其中键和值都是字符串。
因此,当从localStorage中提取数据时,它将是一个字符串。在您的情况下,您已将JSON对象存储在存储中,因此要将其用作对象,您需要从localStorage中获取字符串,然后使用JSON.parse来解析字符串并将其转换为对象,那么你可以在jQuery代码中使用对象的属性:
var data = localStorage.getItem("client");
if(data) {
var obj = JSON.parse(data);
$('#name').val(obj[0].firstName + " " + obj[0].lastName);
}
请注意,如果字符串无效JSON,JSON.parse()可能会抛出错误,因此您可能希望将此调用包装在try / catch块中。