更多内容请访问:与华为官方共建的鸿蒙技术社区https://harmonyos.51cto.com大家好!我是深圳科技大学FSR实验室的同学。标题FFH是FSRlabForHarmony!而我也在参与OpenHarmony从论文到开源提交研究的成长计划。以后我们会继续记录在这个社区的学习心得和体会。参考资料空间数据监控与移动应用——Android操作系统中解析JSON的方法比较简介上一篇文章简单解释了为什么XML会逐渐被JSON取代。下一篇我们就来看看国外常见的几种JSON。解析器比较的是Gson、AndroidJson、JSON.simple、JSON.smart、Jackson。以下大部分分析来自上述参考资料。本文主要讨论Android操作系统上不同解析器处理移动设备JSON格式的问题。Gson第一种解析方式叫做Gson,来自com.google.gson.stream.JsonReaderpackage,Google团队为Java开发的,AndroidJson第二种方式叫做AndroidJson,使用的是Google直接提供的解析库,也就是AndroidSDK一部分。与其他方法不同,不需要将额外的库编译到最终应用程序中。但缺点是在与服务器建立通信时,下载的数据位于InputStream类对象中,这一步需要将数据转换为字符串类对象。因此,对于海量数据的分析,对性能的要求会非常高。JSON.simpleJSON.simple使用了JSON.simple库,它基于堆的方式解析数据。JSON.smartJSON.smart在代码结构上和JSON.simple非常相似,不同的是JSON.smart是性能驱动的。JacksonJackson使用JacksonJSONProcessor库。场景介绍该场景解析不同Android设备上的10、50、100、200、500、1000和5000个空间数据。下图的X轴是数据量。Y轴是不同解析库消耗的时间。图1-3提供了在单个设备上解析所需的测量时间。所有值都以毫秒为单位提供。对每个设备进行十次适当的测量,并从测量中获得平均值。结论查看图表上测试的数据,很明显对于大数据解析,使用Jackson是最有利的方法。但是这种方式不适合小数据的分析,对于小数据量Gson的性能可能更好一些。fastJson和Jackson这里还要提一下国内阿里大神文少自己支持的fastJson。这个库以“牢”着称。国内有人用,但国外大部分项目还是选择Jackson。这就是为什么。什么?因为只有fastJson是一个人负责,而像jackson这样的库是一个团队负责的,所以一个人的团队开发的库可以比一个团队开发的库有性能优势。可以想象,已经走了一些捷径。这些shortcut就是一些代码写在fastJson中,导致可扩展性低,牺牲了java的一些兼容特性来达到所谓的快。与国外的库相比,其代码质量相对较差。所以,fastJson没有在全球流行起来的主要原因应该是开发者的想法都放在了快车道上,偏离了标准和功能,质量也不够好。英文文档,所以你不能指望外国人会使用它们。而且杰克逊的可扩展性非常高。各种奇妙的需求都能得到满足,开源代码质量比较高,开源项目社区的运作也比较好。参考资料空间数据监控与移动应用——Android操作系统JSON解析方法对比https://www.zhihu.com/question/44199956更多内容请访问:建鸿蒙技术社区https://harmonyos.51cto.com
