在C語言中,獲取Json對象是一個很常見的操作。本文將介紹如何獲取Json的子值。
首先,我們需要使用Json解析器。目前在C語言中比較常用的Json解析器有jansson和cJSON。這里我們選擇使用cJSON。
假設我們有如下的Json對象:
{ "name": "Tom", "age": 20, "address": { "city": "Shanghai", "country": "China" } }
現在我們需要獲取address對象中的city值。代碼如下:
#include <stdio.h> #include <cjson/cJSON.h> int main() { char* json_string = "{\"name\":\"Tom\",\"age\":20,\"address\":{\"city\":\"Shanghai\",\"country\":\"China\"}}"; cJSON* root = cJSON_Parse(json_string); cJSON* address = cJSON_GetObjectItem(root, "address"); cJSON* city = cJSON_GetObjectItem(address, "city"); printf("city = %s\n", city->valuestring); cJSON_Delete(root); return 0; }
解釋一下代碼:
1. 使用cJSON_Parse函數將Json字符串解析成Json對象。
2. 使用cJSON_GetObjectItem函數獲取address對象。
3. 再次使用cJSON_GetObjectItem函數獲取city值。
4. 打印city值。
5. 使用cJSON_Delete函數釋放內存。
以上就是獲取Json對象子值的方法。需要注意的是,當獲取的值為數字類型時,需要使用cJSON_GetNumberValue函數;當獲取的值為布爾類型時,需要使用cJSON_IsTrue函數。
上一篇c 獲取json的鍵
下一篇c 獲取json數組