C JSON API是一個用C編寫的開源JSON解析器和生成器庫。它可以幫助開發(fā)人員輕松地解析JSON數(shù)據(jù)并將其轉換為C中的各種數(shù)據(jù)類型,同時也可以將C數(shù)據(jù)類型轉換為JSON格式。
//示例代碼 #include <stdio.h> #include <jansson.h> int main() { const char *json_str = "{\"name\":\"John\",\"age\":30,\"married\":false,\"hobby\":[\"running\",\"swimming\"]}"; json_error_t error; json_t *root = json_loads(json_str, 0, &error); if (root) { json_t *name = json_object_get(root, "name"); json_t *age = json_object_get(root, "age"); json_t *married = json_object_get(root, "married"); json_t *hobby = json_object_get(root, "hobby"); printf("Name: %s\n", json_string_value(name)); printf("Age: %d\n", json_integer_value(age)); printf("Married: %s\n", json_is_true(married) ? "true" : "false"); if (hobby) { size_t index; json_t *value; printf("Hobby:"); json_array_foreach(hobby, index, value) { printf(" %s", json_string_value(value)); } printf("\n"); } json_decref(root); } else { printf("Error: %s\n", error.text); } return 0; }
上述示例代碼中,我們首先定義一個JSON字符串,然后使用json_loads()函數(shù)將其轉換為一個json_t對象。然后,我們可以使用json_object_get()和json_array_get()函數(shù)獲取JSON字段的值,并使用json_string_value(),json_integer_value()等函數(shù)將其轉換為C中的對應類型。
除了解析JSON外,C JSON API還提供了許多其他功能,例如生成JSON,合并JSON等等。它與許多不同版本的C和C++兼容,并獲得了廣泛的應用。如果您正在尋找一個功能強大的JSON解析庫,那么C JSON API絕對是一個值得嘗試的選擇。