C語言中解析JSON字符串是一項非常常見的任務,它通常可以通過使用第三方庫來實現。
在這里,我會介紹使用 cJSON 庫來解析 JSON 字符串的方法。
// 引入 cJSON 庫 #include// 創建并解析 JSON 字符串 char *json_str = "{ \"name\":\"Tom\", \"age\":22 }"; cJSON *root = cJSON_Parse(json_str); // 判斷解析是否成功 if (root == NULL) { printf("Error before: %s\n", cJSON_GetErrorPtr()); } else { // 獲取鍵值對 cJSON *name = cJSON_GetObjectItemCaseSensitive(root, "name"); cJSON *age = cJSON_GetObjectItemCaseSensitive(root, "age"); // 判斷獲取是否成功 if (cJSON_IsString(name) && name->valuestring != NULL) { printf("Name: %s\n", name->valuestring); } if (cJSON_IsNumber(age)) { printf("Age: %d\n", age->valueint); } } // 釋放資源 cJSON_Delete(root);
在這個示例中,我們首先引入 cJSON 庫。然后,我們創建了一個 JSON 字符串,并使用 cJSON_Parse 函數將其解析為 cJSON 根對象。
接著,我們使用 cJSON_GetObjectItemCaseSensitive 函數獲取鍵值對,并使用 cJSON_IsString 和 cJSON_IsNumber 函數判斷獲取是否正確。
最后,我們釋放 cJSON 對象的內存。