[转]封三郎-利用QJSON将FDQuery转成JSON串

服务器要支持Http协议,打算采用Http+JSON的方式来交换数据。一开始考虑使用superobject,因为以前使用比较多,比较熟悉。

代码如下:

 

这样写,没问题,可以得到结果,但是我觉得冗余的数据比较多,有些信息是不需要每行都返回的。比如字段名,每条记录都返回了。

但是当我想去掉Data的字段名时,才注意到JSON串里面的顺序和字段的顺序居然不是一致的,无论我怎么插入,只要是用SuperObject的接口去生成JSON串,

顺序都会被自动按照一种我目前没理解的方式排序。除非我自己用字符串去拼装JSON串。

该方法得到的结果如下:

看到没?Cols和Data的字段顺序是不一致的!Fields是我在循环里面用字符串拼装的(最开始不是这样写的,我以为我手工拼装可以得到预期的顺序,但是因为用了 SO(Fields) 得到JSON

串,所以顺序依然和Cols保持了一致,而这个顺序不是 Select 语句的得到数据集的字段顺序(调试的时候,包括得到的运行时的字符串的内容都和数据集是一致的,但一旦生成为JSON串

以后,顺序就改变了。)。

于是,我决定用QJSON去尝试一下,QJSON得到的结果顺序和我预期是一致的。

代码如下:

 

得到的结果如下:

可以看到,数据量明显减少,而且并不影响数据的解析。因为Data数组里面的每条记录(也是数组)是和字段信息的顺序一致的。

分享到:

1 条评论

沙发空缺中,还不快抢~