从隐藏的输入中检索JSON数据

时间:2010-11-29 17:24:06

标签: javascript jquery

我将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对象?

提前致谢!

1 个答案:

答案 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>