您的位置:首页 > Web前端 > JavaScript

关于json解析

2015-08-07 11:46 459 查看
json解析我一直都用的fastjson, 昨天遇到一个问题,研究了半天,才发现是自己封装的框架里的问题。本来框架本身没有问题,只不过用到我现有项目中时,由于后台的关系,导致解析出来的数据类型不一样。上一次的项目中,由于实现前台和后端做了一个约定:返回的json数据都以映射的方式传回来,也就是键值对的形式。如果你查查资料,看看json数据的具体表现形式,就知道它有三种表现形式,一种是返回的就是一个字符串或者基本数据类型,第二种就是序列形式(数组活着集合),第三种就是键值对形式。

而上次的项目采用的就是键值对形式,因为返回数据里不只有要显示在安卓客户端上的数据,还包含errorcode和errorMessage。错误码信息的设置用于在请求返回后做一个判断,何时需要解析,何时不需要解析,以及返回给用户什么信息提示。所以在代码里做了封装,将所有的返回数据都是通过Object a=JSON.parseObject(response)方法来解析的。

拿到的是一个完整的对象,然后把这个对象作为参数,通过回调方式传回到主程序中。listener.onSuccess(a)

而现在的情况是一旦返回的json不是键值对形式,就不能调用这个方法,只能调用JSON.parseArray(response)才能解析。而此时拿到的list对象就不能以Object类型回调回来的。

由于后台返回的json形式不固定,那我需要有针对性的去做解析,所以就不能一次封装写死。

结论是:情况变了,即使是封装好的成熟的框架,从请求到解析回调再到存储成都继承了Object的对象也不适用了。这样对后台返回的json数据形式没有约束了,但是要求客户端代码有所改动,虽然都是json,但是不同的形式调用的方法不同。现在连封装都不需要了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: