Передача вложенной структуры данных в апплет из JavaScript - PullRequest
0 голосов
/ 07 ноября 2010

На моей странице есть апплет.Я хотел бы передать некоторые данные в функцию апплета.Я узнал, как это сделать, и он отлично работал для простых типов данных, таких как строки, но мне трудно работать с некоторыми вложенными структурами данных.Я не уверен, что будет правильным термином для него - список словарей или массив ассоциативных массивов.Вот фрагмент моей структуры данных 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 ]

0 голосов
/ 07 ноября 2010

Я не уверен, что мост Java / JavaScript поддерживает что-либо кроме примитивных типов. Вы можете попробовать сериализовать в JSON, а затем передать его через мост:

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

Редактировать: как только что упоминалось ...:)

0 голосов
/ 07 ноября 2010

Возможно, есть лучшее решение, но вы можете JSON преобразовать данные в Javascript и затем декодировать их в Java.

...