JSON(JavaScript Object Notation)是一種輕量級的數據交換格式,它在Web應用程序之間傳遞數據。在C語言中解析JSON數據是非常方便的,下面是一份C語言解析JSON數據的示例代碼:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <jansson.h>
int main(int argc, const char* argv[]) {
char *json_string = "{ \"name\":\"John\", \"age\":30, \"city\":\"New York\" }";
json_t *root;
json_error_t error;
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 = json_string_value(json_object_get(root, "name"));
int age = json_integer_value(json_object_get(root, "age"));
const char *city = json_string_value(json_object_get(root, "city"));
printf("Name: %s\n", name);
printf("Age: %d\n", age);
printf("City: %s\n", city);
json_decref(root);
return 0;
}
在上面的示例中,我們使用了jansson庫來解析JSON數據。首先,我們需要將JSON字符串加載為json_t對象。如果加載失敗,我們將通過error對象獲取詳細錯誤信息。
然后,我們可以使用json_object_get()函數獲取JSON對象的值,并使用json_string_value()、json_integer_value()等函數將值轉換為C語言原生類型。
最后,我們需要通過json_decref()函數釋放json_t對象的內存。
在實際開發中,我們可能會遇到更加復雜的JSON數據結構,如JSON數組和嵌套JSON對象。對于這些情況,我們可以使用類似json_array_size()、json_array_get()、json_object_iter()、json_object_iter_next()等函數來進行解析。
上一篇python 服務怎么起
下一篇python 股票分析書