前言:
1、数组json和object型json都可能会有字节点
2、数组型json,是连续存储的,因此遍历简单,和普通数组访问类似
3、object型的json通过迭代器进行遍历,迭代器返回的迭代器指针的顺序不定,因此访问object型json或者json的某个子节点是object型,其访问顺序会有一定偏差。
4、json的API接口介绍链接:
https://blog.csdn.net/weixin_39936714/article/details/90718452
json遍历的思路如下:
1、根据json数据的文本将json数据加载到内存
2、判断根节点root的json类型
2.1 如果是object型json,则调用printf_object_gmdata,通过迭代器对json进行遍历
2.2 如果是数组型json,则调用printf_array_gmdata函数对json进行遍历
2.3 如果是其他类型的json,则没有子节点,因此可以根据json类型自行访问json的值
3、object型json遍历流程(printf_object_gmdata)
3.1 获取object的迭代器,并通过迭代器指针,获取该迭代器对应键值对的key值以及数据value(json数据)
3.2 判断value的json类型
3.2.1 如果是object型json,则调用printf_object_gmdata,通过迭代器对json进行遍历
3.2.2 如果是数组型json,则调用printf_array