使用c語言拆json包,需要用到一些第三方庫,比如CJSON,該庫提供了一些API以便于我們處理json數據。
首先需要定義一個json對象,可以使用以下代碼:
cJSON *root = NULL; const char *jsonstr = "{\"name\": \"Alice\", \"age\": 20}"; root = cJSON_Parse(jsonstr); if (root == NULL) { //處理解析失敗的情況 }
上面定義了一個json對象root,然后將json字符串解析成該對象。如果解析失敗,需要處理該情況。
接下來可以通過以下代碼獲取json字符串中的值:
cJSON *item; item = cJSON_GetObjectItemCaseSensitive(root, "name"); if (item == NULL) { //處理獲取失敗的情況 } printf("name:%s\n", item->valuestring);
上面的代碼獲取了json中name這個鍵的值,并輸出到屏幕上。
如果json數據比較復雜,可以通過以下代碼遍歷json對象:
cJSON *item; cJSON_ArrayForEach(item, root) { if (cJSON_IsString(item) && item->string != NULL) { printf("key:%s, value:%s\n", item->string, item->valuestring); } }
上面的代碼遍歷json對象,并輸出每一對鍵值對。
以上就是使用c語言拆json包的基本方法。