0

我想将一个字符串数组从 java 传递给 javascript。我怎样才能达到同样的效果。使用 loadUrl,我将 Java 字符串 [] 传递给 javascript 函数。(String[] StringName--> ["hello", "hi"])

但是当我尝试在 javascript 中访问相同的内容时

function displayString(StringName) {
    for(var i=0;i<StringName.length;i++) {
         alert("path : " + StringName[i]);
    }
}

我期望长度为 2,因为 Java 字符串 [] 中只有 2 个项目。但在 javascript 中,它以字符串的形式出现。我必须使用什么格式才能将其作为数组

4

3 回答 3

2

我想到了两个想法。您可以使用 jsp 创建一个 javascript 数组,也可以使用 java 数组的分隔符并创建一个字符串,然后在字符串上使用 split() 在 javascript 中读回。

方法一:

<% String array[] = // is your initialized array %>

<script>
var jsArray = new Array();
<% for(String element:array){
%> jsArray[jsArray.length] = <% element %>
<% } %>
</script>

这应该创建一个可立即使用的 Javascript 数组,其中包含 Java 数组中包含的值。

方法2:(使用分隔符作为#)

<% StringBuilder sb = new StringBuilder();
for(String element:array){
sb.append(element + "#");
}
%>
<script>
var temp = <% sb.toString() %>
var array = temp.split('#');
...
</script>
于 2013-06-05T04:13:47.137 回答
1

Java 到 JSON 和 JSON 到 Java 的覆盖面相当广。

你应该检查一下。

https://stackoverflow.com/questions/338586/a-better-java-json-library

于 2013-06-05T04:08:49.887 回答
0
<%
    String[] jArray= new String[2];
    jArray[0]="a";
    jArray[1]="b";

    StringBuilder sb = new StringBuilder();
    for(int i=0;i<jArray.length;i++) 
        sb.append(jArray[i]+",");
%>

<script type="text/javascript">
    temp="<%=sb.toString()%>";
    var array = new Array();
    array = temp.split(',','<%=jArray.length%>');

    alert("array: "+array);
</script>
于 2013-10-10T15:37:32.343 回答