无法从 JavaScript 对象获取值
Unable to get the value from a JavaScript object
我创建了一个 JSON 对象并将其放在会话对象下。
如何从 JSON 中检索值?
这是我的程序
var datainsession = {"firstName":"John", "lastName":"Doe"};
var keyname = 'test';
window.sessionStorage.setItem(keyname + '', datainsession);
var val_sess = window.sessionStorage.getItem(keyname);
var firstname = val_sess.firstName;
alert(firstname);
http://jsfiddle.net/5bea0mr2/3/
你能告诉我如何找回名字吗?
会话存储只能保存字符串,不能保存对象。您的会话最终会将您的对象转换为字符串 ("[Object object]"
),而不是对象本身。
为了解决这个问题,我们可以首先使用 JSON.stringify()
:
将对象转换为 JSON 字符串
window.sessionStorage.setItem(keyname + '', JSON.stringify(datainsession));
-> '{"firstName":"John","lastName":"Doe"}'
然后在拉动它时使用 JSON.parse()
:
将其转换回对象
var val_sess = JSON.parse(window.sessionStorage.getItem(keyname));
-> {"firstName":"John","lastName":"Doe"}
window.sessionStorage.setItem
只能存储序列化对象。
所以你必须先通过JSON.stringify
序列化它:
window.sessionStorage.setItem(keyname, JSON.stringify(datainsession))
然后通过JSON.parse
检索它:
var val_sess = window.sessionStorage.getItem(keyname);
var obj = JSON.parse(val_sess);
// obj.firstName is what you need.
JSON 由字符串表示,而不是对象。它只是一个带有字符串键的 JavaScript 对象。您需要使用 JSON.stringify()
和 JSON.parse()
来转换 JavaScript 对象。
尝试以下操作:
var datainsession = {
firstName: "John",
lastName: "Doe"
};
var keyname = 'test';
window.sessionStorage.setItem(keyname, JSON.stringify(datainsession));
var val_sess = JSON.parse(window.sessionStorage.getItem(keyname));
var firstname = val_sess.firstName;
alert(firstname);
设置时需要转成字符串,取出来解析。这个方法只存储一个字符串,但是 JSON 方法可以解决这个问题。例如
var datainsession = {"firstName":"John", "lastName":"Doe"};
var keyname = 'test';
window.sessionStorage.setItem(keyname + '', JSON.stringify(datainsession));
var val_sess = window.sessionStorage.getItem('test');
var obj = JSON.parse(val_sess).firstName;
警报(对象);
我创建了一个 JSON 对象并将其放在会话对象下。
如何从 JSON 中检索值?
这是我的程序
var datainsession = {"firstName":"John", "lastName":"Doe"};
var keyname = 'test';
window.sessionStorage.setItem(keyname + '', datainsession);
var val_sess = window.sessionStorage.getItem(keyname);
var firstname = val_sess.firstName;
alert(firstname);
http://jsfiddle.net/5bea0mr2/3/
你能告诉我如何找回名字吗?
会话存储只能保存字符串,不能保存对象。您的会话最终会将您的对象转换为字符串 ("[Object object]"
),而不是对象本身。
为了解决这个问题,我们可以首先使用 JSON.stringify()
:
window.sessionStorage.setItem(keyname + '', JSON.stringify(datainsession));
-> '{"firstName":"John","lastName":"Doe"}'
然后在拉动它时使用 JSON.parse()
:
var val_sess = JSON.parse(window.sessionStorage.getItem(keyname));
-> {"firstName":"John","lastName":"Doe"}
window.sessionStorage.setItem
只能存储序列化对象。
所以你必须先通过JSON.stringify
序列化它:
window.sessionStorage.setItem(keyname, JSON.stringify(datainsession))
然后通过JSON.parse
检索它:
var val_sess = window.sessionStorage.getItem(keyname);
var obj = JSON.parse(val_sess);
// obj.firstName is what you need.
JSON 由字符串表示,而不是对象。它只是一个带有字符串键的 JavaScript 对象。您需要使用 JSON.stringify()
和 JSON.parse()
来转换 JavaScript 对象。
尝试以下操作:
var datainsession = {
firstName: "John",
lastName: "Doe"
};
var keyname = 'test';
window.sessionStorage.setItem(keyname, JSON.stringify(datainsession));
var val_sess = JSON.parse(window.sessionStorage.getItem(keyname));
var firstname = val_sess.firstName;
alert(firstname);
设置时需要转成字符串,取出来解析。这个方法只存储一个字符串,但是 JSON 方法可以解决这个问题。例如
var datainsession = {"firstName":"John", "lastName":"Doe"};
var keyname = 'test';
window.sessionStorage.setItem(keyname + '', JSON.stringify(datainsession));
var val_sess = window.sessionStorage.getItem('test');
var obj = JSON.parse(val_sess).firstName;
警报(对象);