CJSON中的jobject對象是CJSON中的一個非常重要的數據類型,它用于表示JSON對象。遍歷jobject對象是我們在處理JSON數據時經常需要進行的操作。下面我們將介紹如何對CJSON中的jobject對象進行遍歷。
CJSON_Hooks hooks; memset(&hooks, 0, sizeof(CJSON_Hooks)); CJSON_SetHooks(&hooks); char *jsonStr = "{\"name\":\"John\", \"age\":30, \"sex\":\"male\", \"married\":true, \"contact\":{\"email\":\"john@example.com\",\"phone\":\"123456\"}}"; CJSON *json = CJSON_Parse(jsonStr); if (!json) { printf("JSON 轉換失敗\n"); return; } jobject obj = json->root->ptr; jobject_iterator iter = JObjectIterate(obj); jobject_kv keyValue; while (JObjectNext(&iter, &keyValue)) { printf("key = %s, ", keyValue.key); switch (keyValue.value->type) { case CJSON_Type_String: printf("value = \"%s\"\n", keyValue.value->ptr); break; case CJSON_Type_Number: printf("value = %f\n", keyValue.value->valueDouble); break; case CJSON_Type_Object: printf("\n"); break; case CJSON_Type_Array: printf("\n"); break; case CJSON_Type_Bool: printf("value = %s\n", keyValue.value->valueInt ? "true" : "false"); break; case CJSON_Type_Null: printf("value = NULL\n"); break; default: printf("\n"); } } CJSON_Delete(json);
以上就是遍歷CJSON中jobject對象的示例代碼。遍歷時我們使用了JObjectIterate函數和JObjectNext函數。其中,JObjectIterate函數是用來初始化遍歷對象的。而JObjectNext函數則用于遍歷jobject對象的鍵值對,并將其返回給我們,直到jobject對象中的所有鍵值對都被遍歷完畢。