2012-11-08 170 views
0

我只是做一個Web服務的SOAP調用並給出了有數據的東西一個字符串響應我等給出如下:如何在Android中解析返回映射(鍵和值對)的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; }; 
     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; [email protected]; }; 
     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,向量,枚舉,地圖,HashMap .....但我不能解析這個迴應,

這不是JSON響應,但我仍然試圖用JSON解析數據,但我不能...

wh at是解析這種迴應的最佳方式嗎?

有沒有人知道如何做到這一點?

感謝......

+0

廣東話您使用SOAP用於與Web服務進行通信?還是你使用JSON我想這裏是一些需要的字符串處理。是嗎 ? – andunslg

+0

@andunslg:謝謝你的回答,我在這個應用程序中使用了soap,我沒有使用JSON,這是Soap Call的響應字符串....我需要解析這個字符串,並且需要獲取數據.... – Jayesh

+0

Ahha然後你可以做一些我認爲的字符串處理。除了普通的字符串操作以外,你需要一個特定的類庫嗎? – andunslg

回答

1

您可以創建一個新的類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); 
    } 
} 

,並使用SoapMap,如:

SoapMap soapMap = new SoapMap(yourSoapObjectResponse); 
int customer_id = Integer.parseInt(soapMap.getValue("customer_id")); 
String firstname = soapMap.getValue("firstname"); 
String email = soapMap.getValue("email");