c語言是一種廣泛應(yīng)用于系統(tǒng)編程、嵌入式編程和網(wǎng)絡(luò)編程的高級語言。json和xml是常用的數(shù)據(jù)格式,而c語言實現(xiàn)json轉(zhuǎn)xml可以將兩種數(shù)據(jù)格式互換,方便數(shù)據(jù)的傳輸和處理。
#include<stdio.h> #include<string.h> #include <jansson.h> int json_to_xml(const char *json_data, char *xml_buf) { int ret = -1; char *xml_ptr = NULL; json_t *root = NULL; json_error_t error; root = json_loads(json_data, 0, &error); if(NULL == root) { printf("load json failed, line %d: %s\n", error.line, error.text); return ret; } xml_ptr = json_dumps(root, JSON_ENCODE_ANY); if(NULL == xml_ptr) { printf("json dumps failed\n"); goto end; } snprintf(xml_buf, strlen(xml_ptr) + 1, "%s", xml_ptr); ret = 0; end: if(root) { json_decref(root); } if(xml_ptr) { free(xml_ptr); xml_ptr = NULL; } return ret; } int main() { char *json_data = "{ \"name\": \"jack\", \"age\": 20 }"; char xml_buf[1024] = {0}; json_to_xml(json_data, xml_buf); printf("json data: %s\n", json_data); printf("xml data: %s\n", xml_buf); return 0; }
以上是一個簡單的c語言實現(xiàn)json轉(zhuǎn)xml的例子。通過使用jansson庫中的函數(shù),可以將json數(shù)據(jù)轉(zhuǎn)換為xml數(shù)據(jù),方便數(shù)據(jù)的處理和傳輸。