对于解析的理解

来源:互联网 发布:json base64 编辑:程序博客网 时间:2024/05/17 22:29
请描述SAX、DOM、PULL解析xml的原理,以及各自优缺点。  参考答案:
SAX以事件驱动为原型进行解析,事件驱动的类型分为开始文档,借宿文档,开始标签,结束标签  ,优点是一种解析速度快并且占用内存少的xml解析器。
缺点是它不会记录标签的关系,而要让你的应用程序自己处理,这样就增加了你程序的负担。  


DOM是一种文档对象模型,DOM可以以一种独立于平台和语言的方式访问和修改一个文档的内容和结构。Dom技术使得用户页面可以动态地变化,如 可以动态地显示或隐藏一个元素,改变它们的属性,增加一个元素等,Dom技术使得页面的交互性大大地增强。缺点是DOM解析XML文件时,会将XML文件 的所有内容以文档树方式存放在内存中。  


Pull解析和Sax解析很相似,Pull解析和Sax解析不一样的地方是pull读取xml文件后触发相应的事件调用方法返回的是数字,还有pull可以在程序中控制想解析到哪里就可以停止解析


Json数据是一系列的键值对的集合,和XML数据来比,Json数据的体积更加小,传输效率高,易解析,不过可读性不高; 
一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性。业内主流技术为其提供了完整的解决方案,从而可以在不同平台间进行数据交换。JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为。
json是一种数据格式,便于数据传输、存储、交换
gson是一种组件库,可以把java对象数据转换成json数据格式
                                
GSON:
首先在服务器端,将服务器端的Person对象通过Gson解析成json的字符串;然后在客户端,通过Gson类将json的字符串还原为Person对象。Gson支持任意复杂Java对象包括没有源代码的对象。
如果我们将Person对象看成一个泛型,那么不管服务器端的Person对象是什么类型,都可以解析出来。
Gson库神奇在哪里呢?如果解析的是Json对象,它主要就是可以将一段Json格式的字符串自动映射成一个对象,从而不需要我们再手动去编写代码进行解析了
如果是一段JSON数组,就借助TypeToken将期望解析成的数据类型传入到fromJson()方法中。
1 0