在C語言中,使用JSON數據時,我們經常需要獲取其中的key。這里介紹一下如何在C語言中取得JSON數據的key。
#include <stdio.h> #include <jansson.h> int main() { char *json_str = "{\"key\": \"value\"}"; //這是我們要解析的JSON字符串 json_t *json_root; //JSON對象指針 json_error_t json_error; //JSON解析錯誤 json_root = json_loads(json_str, 0, &json_error); //將JSON字符串解析為JSON對象 if (!json_root) { printf("json error: %s\n", json_error.text); return 1; } const char *key_str = "key"; json_t *json_key = json_object_get(json_root, key_str); //獲取key指向的對象 if (json_key == NULL) { printf("key %s not found in JSON object\n", key_str); } else { printf("key %s value: %s\n", key_str, json_string_value(json_key)); //獲取key值并打印 } json_decref(json_root); //釋放JSON對象的內存 return 0; }
首先我們需要定義一個JSON對象指針json_t *json_root
來存儲解析得到的JSON數據。然后調用json_loads
函數將JSON字符串解析為JSON對象。如果解析失敗,則會打印出錯誤信息并返回1
。
接著我們需要定義一個const char *
類型的指針key_str
來存儲我們要查找的key值。然后調用json_object_get
函數,將JSON對象和key_str
作為參數,獲取指向key值所在的JSON對象的指針json_t *json_key
。
如果json_key
指針為空,則說明找不到指定的key值,此時需要打印信息提示。如果json_key
指針非空,則可以使用json_string_value
函數獲取key值,并打印出來。
最后記得要使用json_decref
函數釋放JSON對象的內存。