我将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对象?
提前致谢!
答案 0 :(得分:6)
JSON.parse(jsonString);
对于没有本机JSON支持的旧版浏览器,您只需包含json2.js,这将成为可用的功能。
或者您可以使用某些服务器端脚本跳过此步骤。您只需将JSON写入脚本标记即可。它由脚本标记隐式解析,而不是原始javascript。
<script type="text/javascript">
var myObj = <%= myJsonString %>;
console.log('we got this value: '+ myObj.myValue);
</script>