【Flex】读取本地JSON,然后JSON数据转成XML数据
package utils
{
import flash.xml.XMLDocument;
import flash.xml.XMLNode;
import mx.rpc.xml.SimpleXMLEncoder;
/**
* 模块功能:把json格式的数据 转换成 xml格式的数据
* 创建时间:2016-11-26 下午3:33:20
* @author pengxiang
*
*/
public final class ConverJSONToXML
{
public function ConverJSONToXML()
{
}
/**
* 函数功能:把Object格式数据 转换成 XML格式数据;(方法1 可以用,完全灵活,但是对于本项目有BUG,作为下面优化的参考)
* @param obj Object格式数据
* @param rootNodeName XML根节点名称
* @return XML
*
*/
public static function converObjectToXML1(obj:Object,rootNodeName:String):XML {
var qName:QName = new QName(rootNodeName);
var xmlDocument:XMLDocument = new XMLDocument();
var simpleXMLEncoder:SimpleXMLEncoder = new SimpleXMLEncoder(xmlDocument);
var xmlNode:XMLNode = simpleXMLEncoder.encodeValue(obj, qName, xmlDocument);
var xml:XML = new XML(xmlDocument.toString());
// trace(xml.toXMLString());
return xml;
}
/**
* 函数功能:把Object格式数据 转换成 XML格式数据;(方法2 不可以用,半灵活,有BUG,作为下面优化的参考)
* @param obj Object格式数据
* @param nodeParentName XML根节点名称
* @return XML
*
*/
public static function converObjectToXML2(obj:Object,nodeParentName:String):XML
{
var nodeParent:XML = <{nodeParentName}/>;
for(var item:Object in obj){
var node:XML = new XML(<{item}></{item}>);
if (item == "arr"){
var arr :Array = String(obj[item]).split(",");
for (var i:int=0;i<arr.length;i++){
node.appendChild(new XML(<{i}>{arr[i]}</{i}>));
}
}else if (item == "Item"){
converObjectToXML2(obj[item], node);
}else{
node = new XML(<{item}>{obj[item]}</{item}>);
}
nodeParent.appendChild(node);
}
trace(nodeParent.toXMLString());
return nodeParent;
}
/**
* 函数功能:把Object格式数据 转换成 XML格式数据;(方法3 可以用,半写死半灵活的方法,针对本项目设定的json格式,无BUG )
* @param itemObj Object格式数据
* @param rootNodeName XML根节点名称
* @param itemNodeName XML子节点名称
* @return XML
*
*/
public static function converObjectToXML(itemObj:Object,rootNodeName:String,itemNodeName:String):XML
{
// var rootNode:XML = <root/>;
// for(var i:int=0;i<itemObj.length;i++)
// {
// var obj:Object = itemObj[i];
// var itemNode:XML = <Item/>;
// for(var str:String in obj)
// {
// itemNode["@"+str] = obj[str];
// }
// rootNode.appendChild(itemNode);
// }
var rootNode:XML = <{rootNodeName}/>;
for(var i:String in itemObj)
{
var obj:Object = itemObj[i];
var itemNode:XML = <{itemNodeName}/>;
for(var str:String in obj)
{
itemNode["@"+str] = obj[str];
}
rootNode.appendChild(itemNode);
}
return rootNode;
}
public static function objectToXml(obj:Object, root:*):void
{
for(var str:String in obj)
{
root["@"+str] = obj[str];
}
}
/**
* 返回XML文件字符串
* @param value
* @return
*
*/
public static function toXMLFileString(value:XML):String
{
return '<?xml version="1.0" encoding="utf-8"?>\n' + value.toXMLString();
}
}
}
【Flex】读取本地JSON,然后JSON数据转成XML数据的更多相关文章
- 如何使用Google APIs和Google应用系统集成(7)----在里面JSON兑换XML数据处理,JSON数据包括违规XML数据规范:XML节点名称不支持号码Java解
笔者电话Google Calendar APIs的GetColors方法,其中(有关详细信息Google Calendar API已经Google API看到我的博文介绍的其余部分,目前,我们只取Go ...
- Ajax--解析JSON数据与解析XML数据
一.Ajax解析JSON数据 nav.json(json数据) [ { "link":"http://www.jd.com", "src": ...
- json数据相对于xml数据.
JSON is a valid subset of JavaScript, Python, and YAML JSON parsing is generally faster than XML par ...
- js把树形数据转成扁平数据
我就直接上代码了都是实际项目里面用到的 1.假设这个json就已经是树型结构数据了(如果不知道怎么实现树型结构数据请看我另一篇博客) var compressedArr=afcommon.treeDa ...
- 微软BI 之SSIS 系列 - 两种将 SQL Server 数据库数据输出成 XML 文件的方法
开篇介绍 在 SSIS 中并没有直接提供从数据源到 XML 的转换输出,Destination 的输出对象有 Excel File, Flat File, Database 等,但是并没有直接提供 X ...
- js把json数据转化成树形数据
/*转化函数*/ function(data, attributes) { let resData = data; let tree = []; for(let i = 0; i < resDa ...
- 把DataTable中的数据拼接成XML时遇到的问题
错误信息:System.Web.Services.Protocols.SoapException: System.Web.Services.Protocols.SoapException: Serve ...
- 数据库数据导出成XML文件
在数据库中,怎样把库中的数据导出XML文件, sql语句如下: SELECT * FROM 表名 FOR XML AUTO, ELEMENTS
- Oracle查询多行数据合并成一行数据
例如: select base_id, translate (ltrim (text1, '/'), '*/', '*,') xmmc,translate (ltrim (text2, '/'), ' ...
随机推荐
- 前端开发面试题总结之——JAVASCRIPT(一)
___________________________________________________________________________________ 相关知识点 数据类型.运算.对象 ...
- Webpack学习系列(一)
一:全局安装: npm install webpack -g (-g全局安装) npm init -y (初始化参数) npm install webpack --save-dev (安装在当前 ...
- 从CMOS到触发器(一)
作为一个学微电子专业的IC learner,这个学期也有一门课:<微电子器件>,今天我就来聊聊基本的器件:CMOS器件及其电路.在后面会聊聊锁存器和触发器. 今天的主要内容如下所示: ·M ...
- 对spring,struts,hibernate及MVC的理解
对于spring,hibernate,struts等框架,刚开始的时候总是会很迷茫,不知道他们是用来做什么的. 1.对框架的作用理解 个人认为框架的作用是把代码进行了分类,减少了代码的耦合性. 如果不 ...
- Androidstudio项目分享到Git@OSC托管
Androidstudio项目分享到Git@OSC托管. 一.在OSC创建仓库 例如,创建一个AndroidStudy仓库,创建步骤如下: 输入仓库名称 点击创建按钮,就可以完成仓库的创建,如下图所示 ...
- 数据库笔试面试题库(Oracle、MySQL等)
数据库笔试面试题库(Oracle.MySQL等) 版权声明:版权所有,欢迎分享本文,转载请保留出处,否则追究法律责任,谢谢合作. 注:本文将持续更新,可关注作者微信公众号以便获得最新笔试面试资料. ⊙ ...
- ERP实施顾问是干什么的?
ERP实施序列的人员,统称为ERP实施顾问. ERP实施顾问“是把公司的ERP实施作为己任,并投入大量的人力和财力以实现这一目标的群体”.他们精通ERP理论与ERP软件的使用方法,熟练运用项目实施方法 ...
- 定制Maven的ArcheType
根据需要定制Maven的ArcheType的好处不言而喻了,我就不再啰嗦.定制一般通过从Maven的项目构建,比手动构建省去了配置文件的编写.资源文件的复制等繁琐的操作,下面我们就说下从Maven项目 ...
- 【JS】JavaScript中的闭包
在JavaScript中,闭包指的是有权访问另一个函数作用域中的变量的函数:创建闭包最常见的方式就是在一个函数内创建另一个函数.如下例子: function A(propertyName){ retu ...
- ST Lab1 junit test
代码地址: https://github.com/newff/st-lab1 Tasks: Install Junit(4.12), Hamcrest(1.3) with Eclipse Insta ...