我从localstorage中获取值为JSON并尝试解码。 但它不起作用。
这是我从localstorage获取JSON的代码:
$items = "<script> document.write(JSON.parse(JSON.stringify(localStorage.getItem('itemList')))); </script>";
当我在$items
上面回复时,结果如下:
{"items":[{"name":"Guitar","id":"1"}]}
像这样对json进行解码:
$decoded = json_decode($items, true);
当我试图回应$decoded
没有显示任何内容时。当我var_dump($decoded)
显示NULL
感谢任何帮助。谢谢。
答案 0 :(得分:1)
情况是你无法在一行中组合JS / PHP。
$items = "<script> document.write(JSON.parse(JSON.stringify(localStorage.getItem('itemList')))); </script>";
来自json_decode
的 $items
将直接为您提供您输入的代码(检查json_last_error()
)...没有任何JS执行(或者您必须使用PhantomJS;但是这不是你的情况。)
必须如何:
JS part(sample.js):
jQuery.post('sample.php', {
'item': JSON.stringify(localStorage.getItem('itemList'))
});
PHP部分(sample.php)
$items = filter_input(INPUT_POST, 'item');
$decoded = json_decode($items, true);
var_dump($decoded);
答案 1 :(得分:0)
localStorage仅存储字符串。 JSON.stringify()是错误的,因为它期望JSON对象而不是字符串作为输入。