C語言是一種廣泛應用的編程語言,而JSON(JavaScript Object Notation)和XML(Extensible Markup Language)是目前 Web 開發中最常用的數據格式。因此,將C語言數據轉換為JSON或XML格式是十分必要的。在本文中,我們將討論如何使用C語言將JSON格式的數據轉換為XML格式的數據。
#include#include #include #include "cJSON.h" void json_to_xml(cJSON* json, char* xml) { if(json->type == cJSON_Object){ sprintf(xml,"<%s>",json->string); cJSON* child = json->child; while(child != NULL){ json_to_xml(child,xml+strlen(xml)); child = child->next; } sprintf(xml+strlen(xml),"%s>",json->string); }else if(json->type == cJSON_Array){ cJSON* child = json->child; while(child != NULL){ json_to_xml(child,xml); child = child->next; } }else if(json->type == cJSON_String){ sprintf(xml,"%s", json->valuestring); } } int main() { char* json_text = "{\"name\":\"張三\",\"age\":18,\"address\":{\"province\":\"河北省\",\"city\":\"唐山市\"}, \"hobby\":[\"游泳\",\"旅游\",\"打球\"]}"; cJSON* json = cJSON_Parse(json_text); char* xml = (char*)malloc(1024*sizeof(char)); memset(xml,0,1024); json_to_xml(json, xml); printf("%s\n",xml); free(xml); cJSON_Delete(json); return 0; }
以上是一段簡單的C語言代碼,將JSON格式的數據轉換為XML格式的數據。我們使用了cJSON庫,它可以很方便地處理JSON格式的數據。在代碼中,我們首先將JSON格式的數據解析為cJSON對象。然后,我們定義了一個函數 json_to_xml,用于將cJSON對象轉換為XML格式的數據。該函數接受兩個參數,第一個參數是要轉換為XML格式的cJSON對象,第二個參數是XML格式的數據字符串。在函數中,我們采用了遞歸的方式來遍歷cJSON對象,并將其轉換為XML格式的數據。
在 main 函數中,我們定義了一個JSON格式的字符串,并使用 cJSON_Parse 函數將其解析為 cJSON 對象,然后調用 json_to_xml 函數將 cJSON 對象轉換為 XML 格式的數據。最后,我們釋放了之前分配的內存。
總的來說,使用C語言將JSON格式的數據轉換為XML格式的數據并不復雜。只需要使用cJSON庫來解析JSON格式的數據,并編寫一個函數將cJSON對象轉換為XML格式的數據即可。在實際開發過程中,我們還可以根據實際需要擴展函數的功能,使其更加靈活、實用。