關(guān)于使用C語言獲取GET數(shù)據(jù)的JSON數(shù)據(jù),我們可以借助第三方庫(kù)cJSON來實(shí)現(xiàn)。下面是一個(gè)簡(jiǎn)單的實(shí)例。
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <cjson/cJSON.h> int main(void) { char* JsonStr = "{ \"name\": \"John Smith\", \"age\": 33, \"married\": true }"; cJSON* root = cJSON_Parse(JsonStr); if (root == NULL) { printf("Error before: [%s]\n", cJSON_GetErrorPtr()); return 1; } cJSON* name = cJSON_GetObjectItem(root, "name"); cJSON* age = cJSON_GetObjectItem(root, "age"); cJSON* married = cJSON_GetObjectItem(root, "married"); printf("name: %s\n", name->valuestring); printf("age: %d\n", age->valueint); printf("married: %d\n", married->valueint); cJSON_Delete(root); return 0; }
首先引入了cJSON庫(kù),然后定義了一個(gè)JSON字符串。接下來,通過調(diào)用cJSON_Parse()函數(shù)來將字符串解析成cJSON實(shí)例。如果該函數(shù)返回NULL,則說明解析失敗,我們可以通過cJSON_GetErrorPtr()函數(shù)來輸出錯(cuò)誤信息并結(jié)束程序。如果解析成功,就可以通過cJSON_GetObjectItem()函數(shù)來獲取JSON的各個(gè)字段,最后通過屬性valuestring和valueint來輸出值。最后別忘了調(diào)用cJSON_Delete()函數(shù)來釋放內(nèi)存。
上一篇c 獲取json