JSON(JavaScript Object Notation)是一種輕量級的數據交換格式,它易于閱讀和編寫,并且易于機器解析和生成。在許多應用程序中都使用了 JSON 格式來存儲和傳輸數據,因此解析 JSON 數據變得非常重要。
C 語言是一種高性能、可移植性好的語言,經常用于系統編程和底層開發。在 C 語言中解析 JSON 數據并不是一件容易的事情,但是我們可以通過一些庫來實現。
#include <stdio.h>
#include <stdlib.h>
#include <jansson.h>
int main()
{
char* json_str = "{\"name\": \"Tom\", \"age\": 21}";
json_t* root;
json_error_t err;
root = json_loads(json_str, 0, &err);
if (!root) {
fprintf(stderr, "Error: %s at line %d: %s\n",
err.source, err.line, err.text);
exit(1);
}
json_t* name_node = json_object_get(root, "name");
const char* name = json_string_value(name_node);
json_t* age_node = json_object_get(root, "age");
int age = json_integer_value(age_node);
printf("Name: %s\nAge: %d\n", name, age);
json_decref(root);
return 0;
}
上面的代碼使用 jansson 庫來解析 JSON 數據。它包含了一個名為 json_loads() 的函數,可以將 JSON 字符串轉換為 json_t* 類型的對象,然后通過 json_object_get() 函數可以獲取某個節點的值。
在解析完成后,需要調用 json_decref() 函數釋放內存。