1. 解析总体流程
1. 解析总体流程
章节目录
JSON格式从整体而言, 是一个相对简单的结构, 因为它总共就只有六种数据类型, 只需要做好三个大的步骤就行了.
- 跳过空格: JSON的标准允许JSON的字符串中穿插空格, 为了解析, 我们需要先把无关的空格跳过, 只解析有用的部分.
- 类型分辨: 不同的类型有不同的解析方式, 需要先判断传入的JSON数据的类型, 再进行解析.
- 分类解析: 根据不同的类型, 进行对应的解析.
json_value_t *json_value_parse(const char *jsonStr)
{
json_value_t *value = NULL;
int ret;
if (jsonStr == NULL)
{
return NULL;
}
while (isspace(*jsonStr))
{
jsonStr++;
}
ret = __parse_json_value(jsonStr, value);
if (ret < 0)
{
return NULL;
}
return value;
}
这个代码实现了上面说的两个步骤
通过while循环来跳过为空格的字符,
__parse_json_value
这个函数就是解析的核心.
这里来看看__parse_json_value
函数, 原型: int __parse_json_value(const char *jsonStr, json_value_t *value)
, 很好理解, 入参是JSON字符串, 出参是解析后的json_value_t
的结构体和int类型的错误码. 解析JSON的重点就是实现这个函数.
这个函数先暂且这样写, 不代表是这个函数最终的实现, 目前看来只需要这些参数就可以了, 后面还会增加.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix