使用C語言動態解析JSON數據是一項基本的操作,可以幫助程序員將從互聯網或其他數據源獲取的數據以JSON格式保存或處理。JSON是一種輕量級數據交換格式,它易于讀寫,并且可以被多種編程語言處理。
以下是使用C語言解析JSON數據的示例代碼:
#include <stdio.h> #include <jansson.h> int main(void) { const char *json_string = "{\"name\": \"John Smith\", \"age\": 27, \"city\": \"New York\"}"; json_error_t error; json_t *root; root = json_loads(json_string, 0, &error); if(!root) { fprintf(stderr, "error: on line %d: %s\n", error.line, error.text); return 1; } const char *name_value = json_string_value(json_object_get(root, "name")); int age_value = json_integer_value(json_object_get(root, "age")); const char *city_value = json_string_value(json_object_get(root, "city")); printf("name = %s\n", name_value); printf("age = %d\n", age_value); printf("city = %s\n", city_value); json_decref(root); return 0; }
以上示例代碼由三個步驟組成:
1. 定義JSON字符串
const char *json_string = "{\"name\": \"John Smith\", \"age\": 27, \"city\": \"New York\"}";
2. 使用函數json_loads將JSON字符串轉換為JSON對象
root = json_loads(json_string, 0, &error); if(!root) { fprintf(stderr, "error: on line %d: %s\n", error.line, error.text); return 1; }
3. 使用函數json_object_get獲取JSON對象中的某個屬性,并使用相關類型函數獲取屬性的值
const char *name_value = json_string_value(json_object_get(root, "name")); int age_value = json_integer_value(json_object_get(root, "age")); const char *city_value = json_string_value(json_object_get(root, "city")); printf("name = %s\n", name_value); printf("age = %d\n", age_value); printf("city = %s\n", city_value);
以上是使用C語言解析JSON數據的簡單示例。在實際生產中,我們需要更多的代碼來處理更多的JSON數據。
上一篇mysql列合并成一列
下一篇python 按回車繼續