C JSON 獲取鍵值對(duì)
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <jansson.h> int main() { char *json_string = "{ \"name\": \"Jack\", \"age\": 25 }"; json_error_t error; json_t *root = json_loads(json_string, 0, &error); if (!root) { printf("error on line %d: %s\n", error.line, error.text); return -1; } json_t *name = json_object_get(root, "name"); const char *name_str = json_string_value(name); json_t *age = json_object_get(root, "age"); int age_int = json_integer_value(age); printf("Name: %s\nAge: %d\n", name_str, age_int); json_decref(root); return 0; }
以上代碼演示了如何使用 C 語(yǔ)言解析一個(gè) JSON 字符串并獲取其中的鍵值對(duì)。
首先需要使用json_loads
函數(shù)將 JSON 字符串解析為一個(gè)json_t
對(duì)象,解析過(guò)程中如果出現(xiàn)錯(cuò)誤會(huì)返回0
。解析成功后,可以使用json_object_get
函數(shù)獲取 JSON 對(duì)象中某個(gè)屬性對(duì)應(yīng)的值,返回的是一個(gè)json_t
對(duì)象。
使用json_string_value
函數(shù)或json_integer_value
函數(shù)獲取字符串或整數(shù)類型的屬性值,其中,字符串類型的屬性值返回的是一個(gè)const char *
類型的指針,整數(shù)類型的屬性值返回的是一個(gè)int
類型的整數(shù)。
最后需要使用json_decref
函數(shù)釋放json_t
對(duì)象的內(nèi)存。
上一篇c json 讀取文本
下一篇c json 解析屬性值