C語言是一種廣泛應用于嵌入式系統(tǒng)開發(fā)中的語言,而JSON是一種常見的數(shù)據(jù)交換格式。在編寫C語言程序時,有時需要循環(huán)判斷JSON數(shù)據(jù)中某些字段的值。下面就是一段用C語言循環(huán)判斷JSON中某個字段值的示例代碼。
#include#include #include #include "cJSON.h" int main() { char *jsonStr = "{ \"name\": \"張三\", \"age\": 20, \"score\": {\"math\": 90, \"english\": 80}}"; cJSON *root = cJSON_Parse(jsonStr); if (!root) { printf("parse json error:%s\n", cJSON_GetErrorPtr()); return -1; } cJSON *node = NULL; cJSON_ArrayForEach(node, root) { // 循環(huán)獲取JSON中所有的鍵值對 if (strcmp(node->string, "score") == 0 && node->type == cJSON_Object) { // 判斷是否為score對象 cJSON *scoreNode = NULL; cJSON_ArrayForEach(scoreNode, node) { // 如果是score對象,進一步循環(huán)獲取內嵌鍵值對 if (strcmp(scoreNode->string, "math") == 0) { // 如果鍵名為math int mathScore = scoreNode->valueint; // 獲取數(shù)值 printf("math score:%d\n", mathScore); } else if (strcmp(scoreNode->string, "english") == 0) { // 如果鍵名為english int englishScore = scoreNode->valueint; // 獲取數(shù)值 printf("english score:%d\n", englishScore); } } } } cJSON_Delete(root); return 0; }
上述代碼中,使用了cJSON庫來解析JSON字符串,循環(huán)遍歷該字符串中所有的鍵值對,并判斷是否為目標字段所在的對象。如果是目標對象,進一步循環(huán)獲取內嵌的鍵值對,根據(jù)鍵名獲取對應數(shù)值。這樣就可以輕松實現(xiàn)對JSON中目標字段數(shù)值的獲取。