apijson优缺点分析
json和soap+webservice是一种数据交互格式,目前所有的平台都对他们进行支持。json是以键值对的形式展现的长串,webservice交互的数据多为xml,就可读性和可扩展性而言,两种方式不相上下。
编码的方便程度上json要稍微占点优势,没有xml那种多于的标签对。
客户端在使用json串的的时候,只需要eval(),eval这个函数很多语言都有,比如js,as 等等。
在维护方面维护一段xml串比一段json我想难度要大点
如何解析从webservice返回的json
json(javascript Object Notation 的缩写)是一个基于文本的,人类可读的,开放标准的轻量级数据交换格式。它继承了javascript中的简单数据结构和相关数组对象,称为对象。不管它 和javascript的瓜葛,json是语言独立的,几乎所有编程语言都能解析它。 json以键值对来表示数据。每个值被一个键名字引用(键名字是个string)。如果你想以json表示人名,他们的名字将被"name"键引用,如下: “name” : “James” 所以json用一种容易被应用程序传递的方式表现数据,非常完美。 所以当从webservice解析数据时,你要做的第一件事就是搞清楚你的模型。下面我们会分析webservice的响应数据,搞清楚哪些bit代表对象,对象数组,对象所属的字段,等等。 但是json可以表示哪些类型的数据呢?
1.对象是大括号内的所有东东
2.字符串用双引号
3.数字只是简单的显示,如 12345
4. 数组由中括号包围
5.布尔值从'true'和'false'获得,没有引号
6.null值由'null'表示,没有引号
怎么使用android自带的json解析string数据
是不是觉得这样耦合太大?
你可以使用事件或者委托来解耦比如定义一个事件/委托 Action<ID,位置> 解析完你的json就抛出一个事件,比如 A跑到哪里了。
你的ABCDEFG都侦听这个事件,比如A收到了事件,一看哎哟ID是自己,那么用事件的第二个参数来更新自己位置。这样就达到了解耦的目的。
更进一步的你可以封装你与服务器的交互,把从服务器接收的数据也用事件的形式广播出来,比如你以后与服务器交互多了,可能有同步位置的,同步血量的等等,那么可以用一个协议id来标记他们。
接收到服务器消息后以 Action<协议id,数据> 的形式抛出事件。各种逻辑的管理类来侦听他们感兴趣的协议的事件并进行数据的出来。这样你的网络通信与游戏逻辑又解耦了。有了更强的扩展空间:)
还没有评论,来说两句吧...