0

javaからjavascriptに文字列配列を渡したいです。どうすれば同じことを達成できますか。loadUrl を使用して、Java String [] を JavaScript 関数に渡しています。(文字列[] 文字列名 --> ["こんにちは", "こんにちは"])

しかし、JavaScriptで同じものにアクセスしようとすると

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

Java String[] には項目が 2 つしかないため、長さは 2 になると予想しています。しかし、javascript では文字列として来ています。配列として取得するために使用する必要がある形式

4

3 に答える 3

2

2つのアイデアが頭に浮かびます。jsp を使用して JavaScript 配列を作成するか、Java 配列のセパレーターを使用して文字列を作成し、文字列に対して split() を使用して JavaScript で読み返すことができます。

方法 1:

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

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

これにより、Java 配列に含まれる値を使用して、すぐに使用できる Javascript 配列が作成されます。

方法 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 に答える