在 C 語言里,要判斷 JSON 對象內部是否存在某個鍵,需要借助第三方庫。常用的有 jansson、cjson、json-c 等。
以 json-c 為例,其提供了以下核心方法來進行判斷:
struct json_object* json_object_object_get(struct json_object* obj, const char* key); bool json_object_object_get_ex(struct json_object* obj, const char* key, struct json_object** value);
其中,參數 obj 為 JSON 對象,key 為要判斷的鍵,value 為存儲返回值的指針。兩個方法的區別在于,前者會直接返回獲取到的 JSON 對象,而后者需要判斷是否獲取成功。
下面給出一個示例:
#include <stdio.h> #include <json-c/json.h> int main() { const char* json_str = "{\"key1\": 123, \"key2\": \"value\"}"; struct json_object* obj = json_tokener_parse(json_str); struct json_object* value; bool success = json_object_object_get_ex(obj, "key1", &value); if (success) { printf("Value of key1: %d\n", json_object_get_int(value)); } else { printf("Key1 not found\n"); } json_object_put(obj); return 0; }
在上面的示例中,首先通過 json_tokener_parse 方法將 JSON 字符串解析為 JSON 對象。然后使用 json_object_object_get_ex 方法獲取 key1 對應的值,并判斷獲取是否成功。最后通過 json_object_put 方法釋放對象。
上一篇vue代碼怎么打開
下一篇python 矩陣刪列