在C語言中,解析JSON字符串是一項非常常見的任務。JSON是一種輕量級的數據交換格式,它使用易于人讀的文本格式,便于數據的交換和傳輸。以下是一個簡單的C程序,它演示了如何解析JSON字符串。
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <stdbool.h> #include <jansson.h> int main(int argc, char **argv) { const char* json_string = "{ \"name\" : \"John\", " "\"age\" : 30, " "\"married\": true }"; json_error_t error; json_t* root = json_loads(json_string, 0, &error); if(!root) { fprintf(stderr, "Error parsing JSON: %s\n", error.text); return 1; } json_t* name = json_object_get(root, "name"); const char* name_value = json_string_value(name); printf("Name: %s\n", name_value); json_t* age = json_object_get(root, "age"); int age_value = json_integer_value(age); printf("Age: %d\n", age_value); json_t* married = json_object_get(root, "married"); bool married_value = json_boolean_value(married); printf("Married: %s\n", married_value ? "true" : "false"); json_decref(root); return 0; }
該程序先將JSON字符串放在一個指針`json_string`里面,然后通過`json_loads()`函數將其解析成一個`json_t`對象。如果解析失敗,它會返回一個`NULL`指針,并設置一個`json_error_t`錯誤來解釋失敗的原因。
然后,使用`json_object_get()`函數從JSON對象中獲取每個屬性的值,并使用適當的函數(例如`json_string_value`和`json_integer_value`)將其轉換為相應的C類型。
最后,使用`json_decref()`函數釋放內存,防止內存泄漏。
上一篇python 編彩票程序
下一篇vue dom移除