在C語言中,我們可以使用幾種不同的方法來解析JSON格式的數據。下面介紹一些方法:
1. 使用CJSON庫
#include "cJSON.h" void parse_json_data(char* json_data) { cJSON* root = cJSON_Parse(json_data); if(root == NULL) { printf("JSON格式錯誤\n"); return; } cJSON* name = cJSON_GetObjectItem(root, "name"); cJSON* age = cJSON_GetObjectItem(root, "age"); cJSON* hobbies = cJSON_GetObjectItem(root, "hobbies"); ... cJSON_Delete(root); }
2. 使用Jansson庫
#include "jansson.h" void parse_json_data(char* json_data) { json_error_t error; json_t* root = json_loads(json_data, 0, &error); if(!root) { printf("JSON格式錯誤: %d - %s\n", error.line, error.text); return; } json_t* name = json_object_get(root, "name"); json_t* age = json_object_get(root, "age"); json_t* hobbies = json_object_get(root, "hobbies"); ... json_decref(root); }
3. 使用RapidJSON庫
#include "rapidjson/document.h" void parse_json_data(char* json_data) { rapidjson::Document doc; doc.Parse(json_data); if(!doc.IsObject()) { printf("JSON格式錯誤\n"); return; } const rapidjson::Value& name = doc["name"]; const rapidjson::Value& age = doc["age"]; const rapidjson::Value& hobbies = doc["hobbies"]; ... }
無論使用哪種方法,解析JSON都需要注意格式是否正確以及數據類型、路徑是否正確等問題,以避免不必要的錯誤。