在C語言中,常常需要使用JSON格式的數據來進行數據的存儲和傳輸。JSON格式數據非常的簡潔和易于解析,然而,在使用C語言進行JSON數據解析時,很容易遇到參數JSON格式不正確的問題。
例如,以下是一段JSON格式的數據: { "name": "張三", "age": 18, "gender": "male" } 在C語言中,我們可以使用第三方庫 cJSON 來對這段JSON數據進行解析,代碼如下: #include#include #include "cJSON.h" int main() { char *json_data = "{\"name\": \"張三\", \"age\": 18, \"gender\": \"male\"}"; cJSON *root = cJSON_Parse(json_data); if (!root) { printf("Error before: [%s]\n", cJSON_GetErrorPtr()); return -1; } printf("name: %s\n", cJSON_GetObjectItem(root, "name")->valuestring); printf("age: %d\n", cJSON_GetObjectItem(root, "age")->valueint); printf("gender: %s\n", cJSON_GetObjectItem(root, "gender")->valuestring); cJSON_Delete(root); return 0; } 以上代碼運行時無法正確解析JSON數據,控制臺輸出以下錯誤信息: Error before: [Unable to parse JSON string.] 造成這個問題的原因是因為JSON數據格式不正確,具體來說,JSON數據中的字符串必須使用雙引號引起來。 正確格式的JSON數據如下: { "name": "張三", "age": 18, "gender": "male" } 修改后的C語言代碼如下: #include #include #include "cJSON.h" int main() { char *json_data = "{\"name\": \"張三\", \"age\": 18, \"gender\": \"male\"}"; cJSON *root = cJSON_Parse(json_data); if (!root) { printf("Error before: [%s]\n", cJSON_GetErrorPtr()); return -1; } printf("name: %s\n", cJSON_GetObjectItem(root, "name")->valuestring); printf("age: %d\n", cJSON_GetObjectItem(root, "age")->valueint); printf("gender: %s\n", cJSON_GetObjectItem(root, "gender")->valuestring); cJSON_Delete(root); return 0; } 運行以上代碼,便可以正確解析JSON數據并輸出結果。
上一篇html學員登記表代碼
下一篇mysql取前兩位小數