这将有效:
var json = { 'items': [{ 'id': 72, 'quantity': 1, 'format': '90ml' }, { 'id': 72, 'quantity': 4, 'format': '70ml'}] }
alert(json.items[1].id);
Run Code Online (Sandbox Code Playgroud)
这不起作用:
var json = $.cookie('json_string');
alert(json.items[1].id);
Run Code Online (Sandbox Code Playgroud)
cookie中的json_string与示例#1中的json_string完全相同.在鬼混之后,我意识到我需要这样做才能使它工作:
eval("var json = " + $.cookie("json_cart"));
Run Code Online (Sandbox Code Playgroud)
这是正确的方法吗?这似乎是一个黑客,我在尝试进行这个javascript/c#json通信时面临一些挑战,我觉得这很容易.无论如何.至少我现在跑了.
hay*_*lem 12
要将字符串反序列化为对象,并假设您以现代浏览器为目标,您可以使用本机函数执行以下操作:
var myObj = JSON.parse($.cookie('json_string'));
Run Code Online (Sandbox Code Playgroud)
或者您可以从官方JSON网站导入json2.js并使用与上面相同的行.
或者,如subhaze所述,您可以完全使用jQuery-y并使用:
var myObj = jQuery.parseJSON('{"name":"John"}');
Run Code Online (Sandbox Code Playgroud)
如果字符串是在cookie中编码的,那么你需要先解码它,使用decodeURIComponent()
如下:
var myObj = JSON.parse(decodeURIComponent($.cookie('json_string')))
Run Code Online (Sandbox Code Playgroud)
您的JSON实际上是无效的,因为它需要双引号键.您应该使用双引号("
)来包围您的键和字符串值.
要快速检查JSON的有效性,请尝试JSONLint.
你的问题与其他问题非常相似.因此,在将来,请务必先检查JSON标记或搜索问题,检查是否存在类似问题.
归档时间: |
|
查看次数: |
1356 次 |
最近记录: |