2010-11-29 62 views
1

我将JSON数据存储在服务器端的HTML隐藏字段中。然后我想在客户端使用Javascript和JQuery检索数据。问题是我得到一个JSON字符串而不是一个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

你是什么意思“获取JSON对象而不转换字符串”? – casablanca 2010-11-29 17:26:23

+0

我发布了我认为你想要的东西,但是这个部分令人困惑。您正在问如何将json字符串转换为对象,而无需将json字符串转换为对象... – 2010-11-29 17:29:00

回答

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>