2010-11-29 2 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> 
Смежные вопросы