2011-06-20 59 views
0

我想通過Ksoap爲我的Android應用程序調用WSDL Webservice。當我使用SoapPrimitive,它的工作原理,我得到以下字符串:Ksoap調用Webservice - SoapObject的問題

{"INGREDIENTS": [ 
    { 
     "TEXT": "ohne Schweinefleisch", 
     "KEY": "*" 
    }, 
    { 
     "TEXT": "mit Alkohol", 
     "KEY": "11" 
    }, 

......

等等。我想有隻在ListView「文本」,但我不知道如何用SoapPrimitive實現這一點。

當我使用SoapObject,我只得到以下Exeption:

"java.lang.ClassCastException: org.ksoap2.serialization.SoapPrimitive cannot be cast to org.ksoap2.serialization.SoapObject" 

這裏是我的代碼:

try { 

     SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); 

     SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); 
     envelope.dotNet=true; 
     envelope.setOutputSoapObject(request); 

     HttpTransportSE androidHttpTransport = new HttpTransportSE(URL); 
     androidHttpTransport.debug = true; 
     androidHttpTransport.call(SOAP_ACTION, envelope); 

     SoapObject response = (SoapObject)envelope.getResponse(); 
     } 

有什麼不對?我從網上看了幾個小時,但我沒有找到答案。

回答

2

您的回覆看起來像是JSONArrayJSONObject s。你可以用built-in json library 或使用gson來解析它。

+0

ok謝謝, 你的意思是這樣的: Object result =(Object)envelope.getResponse(); JSONObject jObject = new JSONObject(result.toString()); – ph09

+0

你的情況應該是'JSONArray jArray = new JSONArray(result.toString());',但你明白了我的觀點。 – ernazm