一种方式是整个在内存里面,把json的数据表示成一棵树,可以在这棵树里面去遍历来回的访问,类似于XML的dom。必须先建好这棵树,所以一开始可能会消耗一点时间或者是内存。把这棵树建好之后,再去访问树上的节点。
另一种方式是每一次按顺序去访问这个对象的元素,每当读到一个元素的时候,它就会产生一个事件,这个事件就会触发解析器,可以到里面去做一些处理,对应的是XML里面sax。不需要一开始把所有的json的数据一次性加载到内存里进行处理,只需要从开头开始遍历,每当读到一个对象,一个元素,比如name、key或者一个数组,开始就会触发相应的事件,这个事件会带来一些现场的一些信息,比如读到的是什么元素,然后根据这个事件来决定要做的事。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。