在開發中,我們常常需要通過網絡獲取json格式的數據,為了將json數據轉化為代碼可以操作的對象,我們需要解析json。在C語言中,我們可以通過以下兩種方式來解析json:
1. 使用第三方庫
cJSON *root = cJSON_Parse(jsonStr); cJSON *item = cJSON_GetObjectItem(root, "key"); printf("%s\n", cJSON_Print(item));
cJSON是一個輕量級的json解析庫,使用方便。可以通過官方文檔快速上手。
2. 手動解析json
typedef enum JSON_TYPE { JSON_OBJECT = 0, JSON_ARRAY, JSON_STRING, JSON_NUMBER, JSON_NULL, JSON_BOOLEAN } JSON_TYPE; typedef struct JSON { struct JSON *next; char *key; JSON_TYPE type; union { char *s_val; double n_val; int b_val; struct JSON *child; } v; } JSON; JSON *json_parse(const char *jsonStr); void json_free(JSON *json); int json_get_int(JSON *json, const char *key); char *json_get_string(JSON *json, const char *key); double json_get_number(JSON *json, const char *key); int json_get_boolean(JSON *json, const char *key); JSON *json_get_array(JSON *json, const char *key); JSON *json_get_object(JSON *json, const char *key);
手動解析json需要定義一個JSON結構體,將json數據存儲在結構體中并提供相關的接口,可以根據實際需求定義相應的接口。相對于使用第三方庫,手動解析需要投入更大的時間和精力,但也更加靈活。
上一篇html 可填寫代碼