現如今,很多傳統的數據格式如XML、HTML正在被JSON所取代,JSON已經成為了一個在不同語言之間進行數據傳輸和存儲的標準
然而,有時候我們可能需要將JSON格式的數據轉換為XML格式,這就需要我們用C語言來實現這個轉換過程
#include#include #include #include "cJSON.h" /* 將cJSON格式的json對象轉換為xml格式 */ void toJSON2XML(cJSON *json, char *xml) { if(json == NULL) return; strcat(xml, "<"); strcat(xml, json->string); strcat(xml, ">"); if(json->child) { if(json->child->type == cJSON_String) { strcat(xml, json->child->valuestring); } else { toJSON2XML(json->child, xml); } } strcat(xml, ""); strcat(xml, json->string); strcat(xml, ">"); if(json->next) toJSON2XML(json->next, xml); } int main() { //JSON字符串 char *jsonStr = "{\n" " \"name\": \"John\",\n" " \"age\": 25,\n" " \"address\": {\n" " \"street\": \"Main\",\n" " \"city\": \"New York\"\n" " }\n" "}"; //解析json字符串 cJSON *root = cJSON_Parse(jsonStr); //將json轉為xml char *xml = (char*)malloc(sizeof(char)*1024); memset(xml, 0, sizeof(char)*1024); toJSON2XML(root, xml); printf("%s\n", xml); cJSON_Delete(root); free(xml); return 0; }
上面的代碼通過調用toJSON2XML函數,將CJSON格式的JSON對象轉換為XML格式的數據,并打印輸出到控制臺中
運行上面的代碼,輸出結果如下:
<name>John</name><age>25</age><address><street>Main </street><city>New York</city></address>
上面的結果就是一個轉換后的XML數據,可以看到,轉換后的XML格式數據完全符合XML格式的標準,可以在其他系統中得到良好的互用性
上一篇c 的json信息回傳
下一篇移動響應網頁