JSON是一種常用的數據交換格式,而C語言是一種高效、快速的編程語言。解析JSON報文在C語言中也是非常重要的一個技能。
在C語言中,我們可以借助第三方庫來解析JSON報文。JSON-C是一種非常流行的第三方庫,可以幫助我們很方便地解析JSON報文。
#include <stdio.h> #include <json-c/json.h> int main() { char *my_json_string = "{\"name\":\"Tom\",\"age\":20,\"is_student\":true}"; json_object *jobj = json_tokener_parse(my_json_string); enum json_type type = json_object_get_type(jobj); switch (type) { case json_type_null: printf("type: null\n"); break; case json_type_boolean: printf("type: boolean\n"); printf("value: %s\n", json_object_get_boolean(jobj) ? "true" : "false"); break; case json_type_double: printf("type: double\n"); printf("value: %lf\n", json_object_get_double(jobj)); break; case json_type_int: printf("type: int\n"); printf("value: %d\n", json_object_get_int(jobj)); break; case json_type_object: printf("type: object\n"); json_object_object_foreach(jobj, key, val) { printf("%s: ", key); json_object_to_json_string(val); printf("\n"); } break; case json_type_array: printf("type: array\n"); for (int i = 0; i < json_object_array_length(jobj); i++) { json_object *val = json_object_array_get_idx(jobj, i); json_object_to_json_string(val); printf("\n"); } break; case json_type_string: printf("type: string\n"); printf("value: %s\n", json_object_get_string(jobj)); break; } return 0; }
以上就是一個簡單的解析JSON報文的示例代碼。使用JSON-C庫,我們可以方便地將JSON報文解析成一個json_object對象,然后通過枚舉json_type的方式來判斷該對象的類型,并進一步處理。
在實際應用中,我們會遇到更加復雜的JSON報文,需要使用更加靈活的方法來解析。
上一篇c# 獲取json數據
下一篇vue 統一入口