我正在构建一个网站,使用php
将json数据存储到隐藏的输入元素<input type='hidden' class='json_data' name='json_data' value='".json_encode($data[0])."'>
使用该代码,我得到了这个结果:
<input class="json_data" type="hidden" value="[{"ALBUM_ID":"1234","PHOTOS_ID":"1234578"}]" name="json_data">
但是当我尝试使用jquery.val获取值并尝试显示ALBUM_ID时,我得到了这个{
我将json正确放入html的方式有什么问题吗?
然后使用jquery / javascript获取它?
谢谢
答案 0 :(得分:3)
首先在这个打开的控制台上查看结果。 CTL + SHIFT + J
<强> http://jsfiddle.net/techsin/Q2MHA/ 强>
你需要做两件事。 '
和"
'
其次只是这段代码
JSON.parse($('.json_data').val())[0]
你需要[0]因为某些原因你的json对象被包裹在[]中你会知道原因。
你的HTML应该是这样的
<input ... value='[{"ALBUM_ID":"1234","PHOTOS_ID":"1234578"}]'...>
答案 1 :(得分:1)
您需要正确处理input
的{{1}}中的实体。如果使用PHP填充它,请使用value
并使用此函数的结果
答案 2 :(得分:1)
仔细检查以下一行。
<input class="json_data" type="hidden" value="[{"ALBUM_ID":"1234","PHOTOS_ID":"1234578"}]" name="json_data">
如您所见,您已使用"
进行字符串封装。 json字符串还包括"
,它会破坏你的字符串封闭。使用'
括起字符串。
<input class="json_data" type="hidden" value='[{"ALBUM_ID":"1234","PHOTOS_ID":"1234578"}]' name="json_data">
答案 3 :(得分:0)
尝试逃避“使用addslashes或htmlspecialchars
或使用base64对字符串进行编码,并在将字符串解析为JSON
之前使用JS对其进行解码