Как использовать хеш-карты для данных ответа = структура ключевых фраз каждая с одним списком элементов исходной ключевой фразы - PullRequest
0 голосов
/ 06 ноября 2011

Я пытаюсь подключиться через вызов RPC XML к API, который принимает в качестве входных данных список фраз и выдает в качестве выходных данных: «Возвращает структуру ключевых фраз, каждая из которых содержит один список элементов исходной ключевой фразы».

Я пытаюсь использовать обычный код разбора hashmap следующим образом -

  hMap = (HashMap<String, Integer>) untypedResult;

        Set set = hMap.entrySet();

        Iterator i = set.iterator();

        while(i.hasNext()){
          Map.Entry me = (Map.Entry)i.next();
          resp.getWriter().println(me.getKey() + " : " + me.getValue() );
        }

Вывод, который я получаю, выглядит следующим образом -

Ответ для GetThesaurusKeyPhrases---- mp3: [Ljava.lang.Object; @ 76c3358b Бритни Спирс: [Ljava.lang.Object; @ 9f07597

Как правильно получить значения?Я думаю, что мне следует правильно проанализировать каждое значение (часть me.getvalue) ... но я не совсем понимаю, как это сделать ... Любая помощь будет признательна.

1 Ответ

1 голос
/ 06 ноября 2011

Возможно, вам понадобится разыграть каждый ключ и значение, т.е. (String)me.getKey() и посмотреть, что вы получите.

Из размещенного вами фрагмента возможно, что HashMap<String, Integer> в вашем акте неверен. Исходный HashMap может быть определен как просто HashMap или HashMap<Object, Object>, поскольку имя вашей переменной - untypedResult. Я попробовал следующее, и оно работает как ожидалось:

<!-- language: lang-java -->
public static void main(String[] args) {
    HashMap<String, Integer> hMap = new HashMap<String, Integer>();
    hMap.put("Hi1", new Integer(1));
    hMap.put("Hi2", new Integer(2));
    hMap.put("Hi3", new Integer(3));
    hMap.put("Hi4", new Integer(4));
    Set set = hMap.entrySet();
    Iterator i = set.iterator();
    while(i.hasNext()){
        Map.Entry me = (Map.Entry)i.next();
        System.out.println(me.getKey().getClass().getName() + " : " + me.getValue().getClass().getName() );
        System.out.println(me.getKey() + " : " + me.getValue() );
    }
}

Выход для этого блока:

java.lang.String : java.lang.Integer
Hi2 : 2
java.lang.String : java.lang.Integer
Hi1 : 1
java.lang.String : java.lang.Integer
Hi4 : 4
java.lang.String : java.lang.Integer
Hi3 : 3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...