Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java-如何对响应数据使用hashmaps=关键字短语的结构,每个关键字短语都有一个原始关键字短语的项目列表_Java_Hashmap - Fatal编程技术网

java-如何对响应数据使用hashmaps=关键字短语的结构,每个关键字短语都有一个原始关键字短语的项目列表

java-如何对响应数据使用hashmaps=关键字短语的结构,每个关键字短语都有一个原始关键字短语的项目列表,java,hashmap,Java,Hashmap,我试图通过一个XML RPC调用连接到一个API,该API以短语列表作为输入,并以输出的形式提供--“回显一个关键字短语结构,每个关键字短语都有一个原始关键字短语的单一项列表。” 我正试图以以下方式使用常规hashmap解析代码-- hMap=(HashMap)非类型结果; Set=hMap.entrySet(); 迭代器i=set.Iterator(); while(i.hasNext()){ Map.Entry me=(Map.Entry)i.next(); resp.getWriter()

我试图通过一个XML RPC调用连接到一个API,该API以短语列表作为输入,并以输出的形式提供--“回显一个关键字短语结构,每个关键字短语都有一个原始关键字短语的单一项列表。”

我正试图以以下方式使用常规hashmap解析代码--

hMap=(HashMap)非类型结果;
Set=hMap.entrySet();
迭代器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部分)…但我不知道如何执行此操作…任何帮助都将不胜感激。

您可能需要强制转换每个键和值,即
(String)me.getKey()
,然后看看您得到了什么

从您发布的代码片段来看,您的cast中的
HashMap
可能不正确。原始HashMap可能被定义为一个
HashMap
HashMap
,因为您的变量名为
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() );
    }
}

它们是对象数组;这与文档中所说的一致。获取第一个元素并将其强制转换。我严重怀疑它是整数。
<!-- 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