JSON格式由于其简单、轻量,被广泛的应用于各种场景中,而在C语言中,如何读写JSON数据呢?
以"cJSON"为例,它是一个轻量的,用C语言编写的最小的JSON解析器。在使用cJSON中,我们需要使用cJSON_Parse函数将JSON字符串解析成cJSON的结构体,然后可以很方便地获取某个节点的值,如下所示:
cJSON *root = cJSON_Parse(json_string); if(!root){ printf("Error before: [%s]\n",cJSON_GetErrorPtr()); }else{ cJSON *node = cJSON_GetObjectItem(root,"node_name"); if(!node){ printf("Can't find [%s] node\n","node_name"); }else{ printf("Node value = %s\n",node->valuestring); } }
在上述代码中,我们使用了cJSON_Parse函数将json_string解析成了cJSON结构体,然后使用cJSON_GetObjectItem函数获取用"node_name"做key的节点,并输出了节点的值。
除了获取节点的值外,通过cJSON还可以很方便的修改节点的值,只需将相应节点的valuestring或valueint进行赋值即可。