欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

c json轉換對象為空

張吉惟2年前9瀏覽0評論

最近在開發中遇到了一個問題,就是使用C語言中的json庫進行json格式的解析,但是解析出來的對象為空。

#include "cJSON.h"
int main()
{
char* json_str = "{\"name\":\"張三\",\"age\":18}";
cJSON* root = cJSON_Parse(json_str);
if (root == NULL) 
{
printf("JSON parse failed!\n");
return -1;
}
cJSON* name = cJSON_GetObjectItem(root, "name");
cJSON* age = cJSON_GetObjectItem(root, "age");
if (name == NULL || age == NULL) 
{
printf("JSON get failed!\n");
return -1;
}
printf("Name: %s, Age: %d\n", name->valuestring, age->valueint);
return 0;
}

這段代碼應該沒有問題,但是執行后出現了奇怪的結果。

JSON parse failed!

初步分析發現,是json格式字符串解析出了問題,導致root對象為空,那么問題出在哪里呢?

經過查找,發現是json格式字符串的問題,因為在編譯時會自動添加轉義字符,所以json字符串中的雙引號需要添加轉義字符,修改后的json字符串如下:

char* json_str = "{\"name\":\"張三\",\"age\":18}";

修改完成之后,再次運行程序,就可以得到正確的解析結果了。

Name: 張三, Age: 18

總結:C語言中json庫的使用雖然有些繁瑣,但只需注意json格式字符串的編寫,其余的解析操作都十分簡單易懂。