java-如何对响应数据使用hashmaps=关键字短语的结构,每个关键字短语都有一个原始关键字短语的项目列表
我试图通过一个XML RPC调用连接到一个API,该API以短语列表作为输入,并以输出的形式提供--“回显一个关键字短语结构,每个关键字短语都有一个原始关键字短语的单一项列表。” 我正试图以以下方式使用常规hashmap解析代码--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()
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