淘先锋技术网

首页 1 2 3 4 5 6 7

C语言中JSON字符串转对象的操作需要借助第三方库,如cJSON库,可以快捷的实现JSON数据的解析和使用。

使用cJSON库需要先下载并安装对应的库文件,然后在项目中引入相应的头文件,如:

#include "cJSON.h"

接下来就可以将JSON字符串转为cJSON对象,示例代码如下:

char *jsonStr = "{\"name\":\"Alice\", \"age\": 18}";
cJSON *root = cJSON_Parse(jsonStr);
if (root == NULL) {
printf("Parse JSON Error!\n");
return 0;
}

这段代码中的jsonStr是一个JSON字符串,由于是字符串形式,需要添加转义符。而cJSON_Parse函数可以将字符串解析成cJSON对象,如果解析失败则会返回NULL,需要注意此处需要进行判断。

之后就可以使用cJSON对象进行JSON数据的操作,如获取值和修改值等。示例代码如下:

cJSON *name = cJSON_GetObjectItemCaseSensitive(root, "name");
char *nameStr = cJSON_Print(name);
printf("name is %s\n", nameStr);
cJSON_Delete(name);
cJSON_AddNumberToObject(root, "age", 20);
char *updateStr = cJSON_Print(root);
printf("update json is %s\n", updateStr);
free(updateStr);

cJSON_GetObjectItemCaseSensitive函数可以从cJSON对象中获取指定键名的值,并生成一个新的cJSON对象,然后可以使用cJSON_Print函数将其转为字符串进行输出。

cJSON_AddNumberToObject函数可以在对象中添加一个新的键值对,示例代码中是将年龄修改成了20,然后使用cJSON_Print函数将cJSON对象转为字符串。最后记得销毁cJSON对象和释放内存。