在使用C語言進行編程時,我們經(jīng)常會需要從JSON字符串中獲取某個值,下面我們就來介紹一下如何在C程序中取出JSON字符串里面的值。
#include <stdio.h> #include <jansson.h> int main() { const char *json_str = "{\"key1\": \"value1\", \"key2\": 2, \"key3\": [\"array\", 1, 2, 3]}"; json_t *root; json_error_t error; root = json_loads(json_str, 0, &error); if(!root) { fprintf(stderr, "error: on line %d: %s\n", error.line, error.text); return 1; } json_t *key1_value = json_object_get(root, "key1"); const char *key1_str_value = json_string_value(key1_value); printf("key1_value: %s\n", key1_str_value); json_t *key2_value = json_object_get(root, "key2"); int key2_int_value = json_integer_value(key2_value); printf("key2_value: %i\n", key2_int_value); json_t *key3_value = json_object_get(root, "key3"); char *key3_str_value = json_dumps(key3_value, 0); printf("key3_value: %s\n", key3_str_value); json_decref(root); free(key3_str_value); return 0; }
上面的程序展示了如何取出JSON字符串里面的某些值。程序中的json_loads()函數(shù)將JSON字符串解析成JSON對象,然后使用json_object_get()函數(shù)獲取對象中對應(yīng)鍵的值。為了獲取字符串類型的值,可以使用json_string_value()函數(shù),并指定要獲取的鍵的值。對于整型類型的值,可以使用json_integer_value()函數(shù)。如果想獲取數(shù)組類型的值,可以使用json_dumps()函數(shù)將獲取到的JSON對象轉(zhuǎn)換成JSON字符串,并指定要獲取的鍵的值。