在使用C語言作為后臺開發(fā)的過程中,解析JSON數(shù)據(jù)是非常常見的需求,而如今又有許多JSON解析庫可以使用,例如jansson、cJSON、json-c等等。以下是一個使用cJSON庫解析JSON數(shù)據(jù)的示例程序:
//引入cJSON庫 #include "cJSON.h" //JSON數(shù)據(jù)字符串 char json_str[] = "{\"name\":\"Tom\",\"age\":18,\"hobby\":[\"football\",\"basketball\"]}"; int main() { //解析JSON數(shù)據(jù) cJSON *root = cJSON_Parse(json_str); //獲取name值 cJSON *name = cJSON_GetObjectItem(root, "name"); printf("Name: %s\n", name->valuestring); //獲取age值 cJSON *age = cJSON_GetObjectItem(root, "age"); printf("Age: %d\n", age->valueint); //獲取hobby數(shù)組 cJSON *hobby = cJSON_GetObjectItem(root, "hobby"); //遍歷hobby數(shù)組并輸出 int i = 0; cJSON *hobby_item = NULL; cJSON_ArrayForEach(hobby_item, hobby) { printf("Hobby %d: %s\n", i++, hobby_item->valuestring); } //釋放JSON對象 cJSON_Delete(root); return 0; }
上述代碼使用cJSON_Parse函數(shù)將JSON字符串解析為cJSON對象,然后使用cJSON_GetObjectItem函數(shù)獲取JSON中的值,并使用cJSON_ArrayForEach遍歷JSON數(shù)組。使用cJSON庫可以方便地完成JSON數(shù)據(jù)的解析,運用靈活方便。