C語言在數據傳輸中使用Json格式已經變得越來越常見,這是因為Json格式具有良好的兼容性和可讀性。Json格式由鍵值對組成,以'{'開始以'}'結束,例如:
{ "name": "張三", "age": 20, "hobby": ["籃球", "足球"] }
在C語言中傳Json格式數據需要使用第三方庫,如cJSON。cJSON是一個C語言中的JSON解析庫,可以有效地將JSON數據轉換成C語言中的數據結構,例如:
#include <stdio.h> #include "cJSON.h" int main() { char *json = "{\"name\": \"張三\", \"age\": 20, \"hobby\": [\"籃球\", \"足球\"]}"; cJSON *root = cJSON_Parse(json); cJSON *name = cJSON_GetObjectItem(root, "name"); cJSON *age = cJSON_GetObjectItem(root, "age"); cJSON *hobby = cJSON_GetObjectItem(root, "hobby"); printf("name: %s\n", name->valuestring); printf("age: %d\n", age->valueint); int hobbySize = cJSON_GetArraySize(hobby); for (int i = 0; i < hobbySize; i++) { cJSON *hobbyItem = cJSON_GetArrayItem(hobby, i); printf("hobby[%d]: %s\n", i, hobbyItem->valuestring); } cJSON_Delete(root); return 0; }
以上代碼演示了如何解析Json數據,使用cJSON_Parse函數可以將Json字符串轉換成cJSON對象,之后使用cJSON_GetObjectItem函數獲取對象中的屬性,最后使用cJSON_Delete函數釋放內存。
需要注意的是,當使用cJSON解析Json數據時需要保證Json格式正確,否則會導致解析失敗。