我正在尝试使用kSOAP2将字符串数组从Web服务发送到android应用程序。 使用kSOAP2,我在android端收到对象格式的响应。现在我想以String Array格式转换此对象,以便我可以将此数组直接传递给GridView。
我的网络服务方法如下:
[WebMethod]
public string[] getit(string status)
{
string[] result;
if (status == "blue")
result = new string[] { "One", "Two", "Three", "Four" };
else
result = new string[] { "five", "six", "Seven", "Eight" };
return result;
}
我的Android代码如下:
public void call(String status)
{
try {
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
request.addProperty("status",status.toString());
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet=true;
envelope.setOutputSoapObject(request);
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
androidHttpTransport.call(SOAP_ACTION, envelope);
Object result = (Object)envelope.getResponse();
array1=(String []) result; //This statement does not work
}
}
在android代码中,array1是全局声明的字符串数组。 String array1 []; 我想将Object结果转换为array1 String数组。 提前谢谢。
答案 0 :(得分:1)
现在我想不出一个好榜样。您应该检查返回的对象。但我想这是一个内部属性为
的SoapObjectSoapObject result = (SoapObject)envelope.getResponse();
然后我想如果你打电话
String s = (String)result.getProperty(0);
您将获得返回数组的第一个元素。
而对于ofcource,你应该进行必要的错误处理。
答案 1 :(得分:0)
首先使用result.toString()打印“result”对象....并查看它返回的内容,之后它不会直接转换为字符串[],首先它应该转换为Object []数组。并且它将逐个转换为string []数组......所以你的代码应该像....
Object [] objArr =(Object [])result;
String [] strArr = new String [objArr.length];
for(int i = 0; i< = objArr.length; i ++)
{
strArr[i]=objArr[i].toString();
}
这就是你能做到的......