C語言中的JSON解析庫,通常都是解析完整個JSON對象,再從中獲取想要的屬性值。但是,對于需要遍歷JSON對象的屬性值的情況,也可以使用C語言來實現。
//用于遍歷JSON對象的函數 void traverse_json_object(cJSON* root){ cJSON* node = root->child; while (node){ if (node->type==cJSON_String){ printf("Key: %s, Value: %s\n", node->string, node->valuestring); }else if(node->type==cJSON_Number){ printf("Key: %s, Value: %g\n", node->string, node->valuedouble); }else if(node->type==cJSON_Object){ traverse_json_object(node);//如果該節點是JSON對象,則遞歸遍歷 } node = node->next; } }
本函數的作用是遍歷JSON對象的所有屬性值,并打印出屬性名和屬性值。通過傳入JSON對象的根節點,函數可以遞歸地遍歷整個對象。
//調用遍歷JSON對象的函數的代碼 int main(){ char* json_str = "{\"name\":\"John\", \"age\":30, \"city\":\"New York\", \"books\":{\"title\":\"book1\", \"price\":20.5}}"; cJSON* root = cJSON_Parse(json_str); traverse_json_object(root); cJSON_Delete(root); return 0; }
以上是調用遍歷JSON對象函數的代碼。首先,需要將JSON字符串解析成JSON對象,然后調用函數遍歷對象,最后刪除JSON對象。
總之,使用C語言來遍歷JSON對象的屬性值可以讓我們更方便地獲取JSON數據中的信息。
下一篇mysql分區卸載