【问题标题】:How to pass array from java to javascript如何将数组从java传递到javascript
【发布时间】:2013-06-05 04:03:05
【问题描述】:

我想将一个字符串数组从 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 String[] 中只有 2 个项目。 但在 javascript 中,它以字符串的形式出现。 我必须使用什么格式才能将其作为数组获取

【问题讨论】:

  • Java... 你的意思是你的页面是用 JSP 写的?
  • "somestring,somethingelse".split(',') 呢?
  • 从 Android 使用 WebView 我已经创建了页面,我想向 Javascript 发送一个字符串数组来执行一些命令。

标签: java javascript


【解决方案1】:

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

方法一:

&lt;% String array[] = // is your initialized array %&gt;

<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>

【讨论】:

  • 我以为你正在开发一个jsp页面。如果您不是在寻找此帖子,请忽略此帖子。
【解决方案2】:

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

你应该检查一下。

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

【讨论】:

    【解决方案3】:
    <%
        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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-10
      • 2015-05-17
      • 1970-01-01
      相关资源
      最近更新 更多