代码之家  ›  专栏  ›  技术社区  ›  Mridang Agarwalla

从JavaScript向applet传递嵌套数据结构

  •  0
  • Mridang Agarwalla  · 技术社区  · 14 年前

    在我的页面上有一个小程序。我想给applet函数传递一些数据。我已经找到了如何做到这一点,它对简单的数据类型(如字符串)工作得很好,但我对一些嵌套的数据结构有困难。我不确定什么是它的正确术语词典列表或关联数组数组数组。这里是我的JavaScript数据结构的一个片段。

    var servers = []
    servers.push({'id' : 1, 'ip' : '111.111.111.111'});
    servers.push({'id' : 2, 'ip' : '222.222.222.222'});
    $('testapplet').setWork(servers);
    

    如何在Java中访问它?我想遍历它们并将它们打印到控制台上?我试过下面的代码,但没能成功。

    public void setWork(HashMap s[]) {
        for (int i = 0; i < s.length; i++) {
            HashMap item = s[i];
            System.out.println(item);
            System.out.println(item.get("ip"));
        }
    }
    
    2 回复  |  直到 14 年前
        1
  •  0
  •   Jonathan Leffler    12 年前

    我不确定Java/JavaScript桥是否支持除基元类型之外的任何其他类型。 您可以尝试序列化为JSON,然后将其传递到桥上:

    ...yourcode....
    $('testapplet').setWorker(toJSON(yourvar));
    

        2
  •  0
  •   The Who    14 年前

    也许有更好的解决方案,但是您可以用JSON在Javascript中对数据进行字符串化,然后用Java对其进行解码。