2010-10-26 2 views

ответ

0

могли бы хотеть попробовать это:

window.load = function(){ 
var myjson = <%= getJSON() %> 
//using myjson 
} 

getJSON это функция, которая возвращает myJSONObj в JSON отформатированную строку

обновление: короткий пример. надеюсь, что это поможет

<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Insert title here</title> 
<% 
class Foor{ 
    public String getJSON(){ 
     return "{foo:'bar'}"; 
    } 
} 

Foor myfoo = new Foor(); 

%> 
<script language=javascript> 
var myjson = <%= myfoo.getJSON()%> 
alert(myjson.foo); 
</script> 
</head> 
<body> 

</body> 
</html> 
+0

@jebberwocky: Я пробовал это, но это дает мне ошибку «незаконный символ XML». – Rachel

+0

@ спасибо, что обновленный пример помогает – jebberwocky

+0

Поскольку вывод «myfoo.getJSON()» будет считаться строкой в ​​теге скрипта, вы должны обернуть его следующим образом: var myjson = dojo.fromJson ('<% = myfoo .getJSON()%> '); и я думаю, что этот пример будет работать ... – subhaze

0

Попробуйте обернуть вывод в функции toJson.

Для запуска его, когда DOM готов попробовать addOnLoad

А если Вы желаете, чтобы загрузить его с помощью AJAX OnLoad попробовать this

[EDIT]

Это только до меня дошло, что я поставить «toJson», это должно быть fromJson, так как вам нужно преобразовать строку JSON в объект JSON. Вот пример dojo: json string to json object

+0

Моя главная проблема заключается в том, как я могу восстановить объект myJSONObj в додзё, поскольку создаю и настраиваю JSP. Любое предложение высоко ценится. – Rachel