读取JSON字符串,转为XML文件(二)
来源:互联网 发布:新华书店淘宝旗舰店 编辑:程序博客网 时间:2024/05/29 11:44
在做WEB后端开发的时候,会用到XML来传输数据。客户端发送请求(XML)到服务器,服务器又反馈信息(XML)到客户端。在这个过程中,会涉及到读取JSON字符串打包成XML,以及解析XML成JSON字符串给前端使用。现在贴出解析JSON字符串成为XML文档的代码。
test.c
#include<stdio.h>#include<stdlib.h>#include "json.h"#include <libxml/xmlmemory.h>#include <libxml/parser.h>#include <libxml/tree.h>//添加节点到XMLvoid AddNodeToXml(xmlDocPtr doc,xmlNodePtr item, char *key,char *val){xmlNodePtr ponet = xmlNewTextChild(item,NULL,(xmlChar*)key,(xmlChar*) val);}//关闭文档void CloseXml(xmlDocPtr doc){xmlSaveFormatFileEnc("ho.xml",doc,"UTF-8",1);xmlFreeDoc(doc);}void test(){int i = 0;int iLength = 0;json_object* my_array = json_object_new_array();json_object* my_obj1 = json_object_new_object();json_object* my_obj2 = json_object_new_object();json_object* my_obj3 = json_object_new_object();json_object_object_add(my_obj1,"item1",json_object_new_int(1));json_object_object_add(my_obj1,"item2", json_object_new_int(2));json_object_object_add(my_obj1, "item3",json_object_new_int(3));json_object_object_add(my_obj1,"item4", json_object_new_int(6));json_object_object_add(my_obj2,"item5", json_object_new_int(1));json_object_object_add(my_obj2,"item6", json_object_new_int(2));json_object_object_add(my_obj2, "item7",json_object_new_int(3));json_object_object_add(my_obj2,"item8", json_object_new_int(6));json_object_object_add(my_obj3,"item9", json_object_new_int(7));json_object_object_add(my_obj3,"item10", json_object_new_int(8));json_object_object_add(my_obj3, "item11",json_object_new_int(9));json_object_object_add(my_obj3,"item12", json_object_new_int(10));json_object_array_add(my_array,my_obj1);json_object_array_add(my_array,my_obj2);json_object_array_add(my_array,my_obj3);printf("%s\n", json_object_to_json_string(my_array));//从数组中读取JSON对象iLength = json_object_array_length(my_array);//分配对象用来保存数组中的对象json_object* obj[iLength];for(i = 0;i < iLength;i++){obj[i] = json_object_new_object();}// 建立XML文件xmlDocPtr doc = xmlNewDoc(BAD_CAST"1.0");xmlNodePtr pRoot = xmlNewNode(NULL,BAD_CAST"data");xmlDocSetRootElement(doc,pRoot);//遍历出数组中到对象for(i = 0;i < iLength;i++){xmlNodePtr item = xmlNewTextChild(pRoot,NULL,BAD_CAST"item",NULL);obj[i] = json_object_array_get_idx(my_array,i);printf("obj[%d] = %s\n",i,json_object_to_json_string(obj[i]));//添加节点到XML文件中json_object_object_foreach(obj[i],key,val){AddNodeToXml(doc,item,key,json_object_to_json_string(val));}}CloseXml(doc);}int main(){test();}
运行结果:
<?xml version="1.0" encoding="UTF-8"?><data> <item> <item1>1</item1> <item2>2</item2> <item3>3</item3> <item4>6</item4> </item> <item> <item5>1</item5> <item6>2</item6> <item7>3</item7> <item8>6</item8> </item> <item> <item91>71</item91> <item101>81</item101> <item111>91</item111> <item121>101</item121> </item></data>
0 0
- 读取JSON字符串,转为XML文件(二)
- 读取文件转为java字符串
- 读取excel表格转为json字符串
- javascript xml字符串转为JSON对象
- 将XML Document 转为 Json 字符串输出
- JAVA读取FTP文件并转为字符串
- JSON转为字符串,字符串转为JSON格式
- C# : 读取XML文件 (二)
- JS中将字符串转为XML并读取对象的值
- JS中将字符串转为XML并读取对象值实例
- Javascript将字符串转为XML并读取对象值
- 将xml转为json
- json如何转为字符串
- List转为Json字符串
- Json字符串转为List
- json字符串转为字典
- 字典转为Json字符串
- JSON字符串转为对象
- [JNI]如何在ANDROID JNI 的C++中打Log
- 关于linux kernel里的high memory
- Controlling How NSThread and NSRunLoop Exit
- IOS中的WebView
- Sicily 1036. Crypto Columns
- 读取JSON字符串,转为XML文件(二)
- Phoenix常见问题解答
- 何以笙箫默
- 嵌入式内核编译错误解决办法
- 串并联谐振带宽和Q
- iOS学习代码下载—ShareSDK分享到微信、微信朋友圈、QQ
- 常用的Java代码汇总
- 利用中断实现的4*4矩阵键盘扫描
- Android 反编译