如何在Android中解析Soap响应返回映射(键和值对)?
我只是对一个web服务进行Soap调用,它以一个字符串的形式给出响应,该字符串包含如下所示的数据:如何在Android中解析Soap响应返回映射(键和值对)?,android,web-services,parsing,soap,Android,Web Services,Parsing,Soap,我只是对一个web服务进行Soap调用,它以一个字符串的形式给出响应,该字符串包含如下所示的数据: [Map{ item=anyType{key=customer_id; value=1; }; item=anyType{key=created_at; value=2007-08-30 23:23:13; }; item=anyType{key=updated_at; value=2008-08-08 12:28:24; };
[Map{
item=anyType{key=customer_id; value=1; };
item=anyType{key=created_at; value=2007-08-30 23:23:13; };
item=anyType{key=updated_at; value=2008-08-08 12:28:24; };
item=anyType{key=increment_id; value=000000001; };
item=anyType{key=store_id; value=1; };
item=anyType{key=website_id; value=1; };
item=anyType{key=default_billing; value=274; };
item=anyType{key=default_shipping; value=274; };
item=anyType{key=disable_auto_group_change; value=0; };
item=anyType{key=email; value=john.doe@example.com; };
item=anyType{key=firstname; value=John; };
item=anyType{key=group_id; value=1; };
item=anyType{key=lastname; value=Doe; };
item=anyType{key=middlename; value=; };
item=anyType{key=password_hash; value=2049484a4020ed15d0e4238db22977d5:eg; };
item=anyType{key=prefix; value=; };
item=anyType{key=suffix; value=; };
item=anyType{key=taxvat; value=; };
}]
所以我尝试了很多资源来解析这个响应,比如JSON、Vector、Enumeration、Map、HashMap。。。。。但我无法分析这个反应
这不是JSON响应,但我仍然尝试用JSON解析数据,但我无法
解析此类响应的最佳方法是什么
有人知道怎么做吗
谢谢……您可以创建一个新类SoapMap,如下所示:
class SoapMap
{
SoapObject soapObject;
Map<String, String> pairs = new HashMap<String, String>();
public SoapMap(SoapObject soapObject)
{
this.soapObject = soapObject;
for(int i=0; i<soapObject.getPropertyCount(); i++)
{
String str = soapObject.getProperty(i).toString();
String key = str.split("key=")[1].split(";")[0];
String value = str.split("value=")[1].split(";")[0];
pairs.put(key, value);
}
}
public String getValue(String key)
{
return pairs.get(key);
}
}
您不能使用SOAP与web服务通信吗?同样,您仍然使用JSON,我认为这里需要一些字符串处理。是吗?@andunslg:谢谢你的回答,我在这个应用程序中使用了soap,我没有使用JSON,这是soap调用的响应字符串。。。。我需要解析这个字符串,需要获取数据……啊哈,然后你可以做一些字符串处理。除了正常的字符串操作之外,你还需要一个特定的库吗?是的,如果某个库可用,那么很容易解析这种类型响应的数据。。。。。。
SoapMap soapMap = new SoapMap(yourSoapObjectResponse);
int customer_id = Integer.parseInt( soapMap.getValue("customer_id") );
String firstname = soapMap.getValue("firstname");
String email = soapMap.getValue("email");