在C編程語言中,JSON格式要求的數(shù)據(jù)結(jié)構(gòu)是一個以鍵值對為基礎(chǔ)的數(shù)據(jù)格式。通過使用JSON格式,我們可以在不同的編程語言之間傳輸和存儲數(shù)據(jù)。
{ "name": "Tom", "age": 25, "city": "Shanghai", "phone": { "home": "1234", "work": "5678" } }
在C語言中,我們通常使用第三方庫來解析和生成JSON格式的數(shù)據(jù)。
#include <stdio.h> #include <cJSON.h> int main() { char *json_str = "{\"name\": \"Tom\", \"age\": 25, \"city\": \"Shanghai\", \"phone\": {\"home\": \"1234\", \"work\": \"5678\"}}"; cJSON *json = cJSON_Parse(json_str); char *name = cJSON_GetObjectItem(json, "name")->valuestring; int age = cJSON_GetObjectItem(json, "age")->valueint; char *city = cJSON_GetObjectItem(json, "city")->valuestring; cJSON *phone = cJSON_GetObjectItem(json, "phone"); char *work_phone = cJSON_GetObjectItem(phone, "work")->valuestring; printf("Name: %s\n", name); printf("Age: %d\n", age); printf("City: %s\n", city); printf("Work Phone: %s\n", work_phone); return 0; }
在以上例子中,我們使用了cJSON庫來解析JSON字符串并獲取數(shù)據(jù)。
生成JSON格式的數(shù)據(jù)也可以使用cJSON庫來完成:
#include <stdio.h> #include <cJSON.h> int main() { cJSON *json = cJSON_CreateObject(); cJSON_AddItemToObject(json, "name", cJSON_CreateString("Tom")); cJSON_AddItemToObject(json, "age", cJSON_CreateNumber(25)); cJSON_AddItemToObject(json, "city", cJSON_CreateString("Shanghai")); cJSON *phone = cJSON_CreateObject(); cJSON_AddItemToObject(phone, "home", cJSON_CreateString("1234")); cJSON_AddItemToObject(phone, "work", cJSON_CreateString("5678")); cJSON_AddItemToObject(json, "phone", phone); char *json_str = cJSON_Print(json); printf("%s", json_str); return 0; }
使用cJSON庫,我們可以方便地生成JSON格式的數(shù)據(jù),并將其輸出為字符串。
下一篇python+多視圖