您的位置:首页 > 移动开发 > Objective-C

解析SoapObject对象的一点心得发布:

2015-01-30 21:36 218 查看


解析SoapObject对象的一点心得,有需要的朋友可以参考下。

SoapObject类是一个主要用于调用WCF服务的类,其对象可以作为请求,发送到WCF服务器;也可以用于存储响应信息。

之前一篇博客提到,获取WCF服务器的响应以后,返回的是一个SoapObject类型的对象。通过调试发现,该对象本身是一个存储了一套HTML语句的文本。而SoapObject本身提供了对这套HTML语句的解析。

因此,我们对SoapObject的解析,其实可以理解为对HTML语句的解析。

本文以String类型为获取目标(即从WCF服务器提供方法返回的是String类型的数据)

首先我们把返回的String类型分成三种情况:单一个String, 一个String的数组,一个String的二维数组

①对于单一个String,我们在编写调用WCF服务的方法的时候,envelope.bodyIn就不能强制转换成SoapObject,否则会在运行时提示类型转换错误。此时envelope.bodyIn可以直接作为一个Object对象返回,也可以调用其toString()方法,即可获得想要的数据。

②对于一个String的一维数组,我们要把envelope.bodyIn强制转换成SoapObject,获取一个SoapObject类型的对象soap。

此时,只要调用SoapObject的getProperty()方法即可获得想要的数据,参数对应一维数组下标。

例如:要从返回一维数组获取第一个元素,只要调用soap.setProperty(0)即可。

③对于一个String的二维数组。

此时。通过调试发现,getProgerty()方法返回的是另一个SoapObject对象,因此我们可以把envelope.bodyIn的SoapObject对象想象成一个二维数组,其中getProperty()方法是返回一维数组的某一行,参数是对应行下标,再通过调用这一个SoapObject的getProperty()方法,即可获取某一元素。

例如:要获取String[0][1]元素,只要从envelope.bodyIn的SoapObject调用两次getProperty()方法:soap.getProperty(0).getProperty(1)

可见,只要把SoapObject抽象成一个数组,就不难去理解和解析其中的数据。

文章来自: 年轻网(www.nqwang.com) 原文:http://www.nqwang.com/2014/0603/95375.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: