如何将json数组从jsp传递到javascript?
我的jsp代码是如何将json数组从jsp传递到javascript?,javascript,jquery,arrays,json,jsp,Javascript,Jquery,Arrays,Json,Jsp,我的jsp代码是 <% List selected = (List) session.getAttribute("clist"); JSONArray arr = new JSONArray(); JSONObject tmp; for (int i = 0; i < selected.size(); i++) { tmp = new JSONObject(); tmp.put("Id", selected.get(i));
<% List selected = (List) session.getAttribute("clist");
JSONArray arr = new JSONArray();
JSONObject tmp;
for (int i = 0; i < selected.size(); i++) {
tmp = new JSONObject();
tmp.put("Id", selected.get(i));
arr.put(tmp);
}%>
但警觉只会让你[{
请帮帮我
感谢您将属性值从更改为
value="<%=(null != arr) ? arr : ""%>"
到
scriptlet中的变量arr作为字符串传递给HTML,其内容为[{Id:9},{Id:11}],因此您的输入标记将如下所示:。因此value属性将只包含字符串中直到第一个的部分,即[{]
您可以尝试将json数据放在一个不会干扰HTML的位置,比如放在一个隐藏的标记中,比如
<div id="jsondata">
<%=arr%>
</div>
或者将scriptlet放入标记中:
将value属性的分隔符更改为“而不是”也会起作用,但一旦json数据中包含带“的字符串,分隔符就会断开。但是,如果您确信永远不会出现这种情况,这是迄今为止最简单的修复方法。将type hidden更改为text,以查看它是否显示正确的json值。我确信问题存在。@gaurav您完全正确。请告诉我如何将arr值设置为隐藏字段您的输入标记如下:@icke如何克服此问题请参阅下面的我的答案,我希望它能有所帮助。它不起作用会产生错误未捕获语法错误:输入意外结束
value="<%=(null != arr) ? arr : ""%>"
value='<%=(null != arr) ? arr : ""%>'
<div id="jsondata">
<%=arr%>
</div>
<script type="text/javascript">
var s = <%=arr%>;
</script>