C語言在處理JSON數(shù)據(jù)格式時,是通過JSON解析器來實現(xiàn)的。接收JSON數(shù)據(jù)后,可以對其進行解析,然后進行相應處理,最后返回JSON格式的響應。
//使用CJSON來解析JSON數(shù)據(jù) #include <stdio.h> #include <cJSON.h> int main() { char* json_string = "{ \"name\":\"John\", \"age\":31, \"city\":\"New York\" }"; cJSON* json = cJSON_Parse(json_string); if (json == NULL) { const char* error_ptr = cJSON_GetErrorPtr(); if (error_ptr != NULL) { printf("Error before: %s\n", error_ptr); } } else { cJSON* name = cJSON_GetObjectItemCaseSensitive(json, "name"); cJSON* age = cJSON_GetObjectItemCaseSensitive(json, "age"); cJSON* city = cJSON_GetObjectItemCaseSensitive(json, "city"); printf("Name: %s\n", name->valuestring); printf("Age: %d\n", age->valueint); printf("City: %s\n", city->valuestring); cJSON_Delete(json); } return 0; }
以上代碼演示了如何使用CJSON來解析JSON數(shù)據(jù),通過cJSON_Parse()函數(shù)解析JSON字符串后,使用函數(shù)cJSON_GetObjectItemCaseSensitive()來獲取JSON對象中指定的值,最后輸出解析結果。
向服務器發(fā)送JSON請求,獲取JSON響應后,同樣可以使用CJSON來構建JSON格式的響應。例如:
//使用CJSON來構建JSON格式的響應 #include<stdio.h> #include<cJSON.h> int main() { cJSON* root = cJSON_CreateObject(); cJSON_AddStringToObject(root, "name", "John"); cJSON_AddNumberToObject(root, "age", 31); cJSON_AddStringToObject(root, "city", "New York"); char* json_string = cJSON_Print(root); printf("JSON string: %s\n", json_string); cJSON_Delete(root); return 0; }
以上代碼演示了如何使用CJSON來構建JSON格式的響應,使用函數(shù)cJSON_CreateObject()創(chuàng)建JSON對象,然后添加值到對象中,最后使用cJSON_Print()函數(shù)來獲取JSON字符串,輸出JSON響應。
在C語言中,通過JSON解析器可以方便地處理JSON格式的數(shù)據(jù),實現(xiàn)接收JSON并返回JSON響應。可以使用CJSON這個小巧且易于使用的JSON解析器。