我将 JSON 数据存储在服务器端的 HTML 隐藏字段中。然后我想在客户端使用 Javascript 和 JQuery 检索该数据。问题是我得到的是 JSON 字符串而不是 JSON 对象。
这是我在服务器端的代码:
<form id="data" style="display: none;">
<input id="channels" type="hidden" tal:attributes="value python: view.context['ChannelManager'].toJSON(view.channels.values())" />
<input id="mediaGroups" type="hidden" tal:attributes="value python: view.context['MediaGroupManager'].toJSON(view.mediaGroups.values())" />
</form>
这是我在客户端的代码:
copy.channelList = new ChannelTest();
copy.channelList.fromJSONObjectAll($("#data input[id=channels]").val())
所以我从中得到 JSON 字符串而不是 JSON 对象,$("#data input[id=channels]").val()。
如何在不转换 JSON 对象中的 JSON 字符串的情况下获取 JSON 对象?
提前致谢!
最佳答案
JSON.parse(jsonString);
对于没有 native JSON 支持的旧浏览器,您可以简单地包括 json2.js这将成为一个可用的功能。
或者您可以使用一些服务器端脚本跳过此步骤。您只需将 JSON 写入脚本标签即可。它被脚本标记隐式解析为原始 javascript。
<script type="text/javascript">
var myObj = <%= myJsonString %>;
console.log('we got this value: '+ myObj.myValue);
</script>
关于javascript - 从隐藏的输入中检索 JSON 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4306270/