[ActionScript 3.0] AS3 实现XML转换成JSON
package com.fylib.util
{
/**
* @author Frost.Yen
* @E-mail 871979853@qq.com
* @create 2015-6-18 下午2:06:01
*
*/
public class XML2JSON
{
private static var _arrays:Array;
public function XML2JSON()
{ }
public static function parse(node:*):Object {
var obj:Object = {};
var numOfChilds:int = node.children().length();
for(var i:int = 0; i<numOfChilds; i++) {
var childNode:XML = node.children()[i] as XML;
var childNodeName:String = childNode.name();
var value:*;
if(childNode.children().length() == 1 && childNode.children()[0].name() == null) {
if(childNode.attributes().length() > 0) {
value = {
_content: childNode.children()[0].toString()
};
var numOfAttributes:int = childNode.attributes().length();
for(var j:int=0; j<numOfAttributes; j++) {
value[childNode.attributes()[j].name().toString()] = childNode.attributes()[j].toString();
}
} else {
value = childNode.children()[0].toString();
}
} else {
value = parse(childNode);
}
if(obj[childNodeName]) {
if(getTypeof(obj[childNodeName]) == "array") {
obj[childNodeName].push(value);
} else {
obj[childNodeName] = [obj[childNodeName], value];
}
} else if(isArray(childNodeName)) {
obj[childNodeName] = [value];
} else {
obj[childNodeName] = value;
}
}
numOfAttributes = node.attributes().length();
for(i=0; i<numOfAttributes; i++) {
obj[node.attributes()[i].name().toString()] = node.attributes()[i].toString();
}
if(numOfChilds == 0) {
if(numOfAttributes == 0) {
obj = "";
} else {
obj._content = "";
}
}
return obj;
}
public static function get arrays():Array {
if(!_arrays) {
_arrays = [];
}
return _arrays;
}
public static function set arrays(a:Array):void {
_arrays = a;
}
private static function isArray(nodeName:String):Boolean {
var numOfArrays:int = _arrays ? _arrays.length : 0;
for(var i:int=0; i<numOfArrays; i++) {
if(nodeName == _arrays[i]) {
return true;
}
}
return false;
}
private static function getTypeof(o:*):String {
if(typeof(o) == "object") {
if(o.length == null) {
return "object";
} else if(typeof(o.length) == "number") {
return "array";
} else {
return "object";
}
} else {
return typeof(o);
}
} public static function printJSON(o:Object):void {
//trace("Debug.printJSON");
//trace(parseJSON(o));
}
public static function parseJSON(o:*, spaces:int = 1):String {
var str:String = "";
if(getTypeof(o) == "object") {
str += "{\n";
for(var i:* in o) {
str += getSpaces(spaces) + i + "=";
if(getTypeof(o[i]) == "object" || getTypeof(o[i]) == "array") {
str += parseJSON(o[i], spaces + 1) + "\n";
} else {
var type:String = getTypeof(o[i]);
if(type == "string") {
str += "\"" + o[i] + "\"\n";
} else if(type == "number") {
str += o[i] + "\n";
}
}
}
str += getSpaces(spaces - 1 < 0 ? 0 : spaces - 1) + "}";
} else if(getTypeof(o) == "array") {
str += "[\n";
var n:int = o.length;
for(i=0; i<n; i++) {
str += getSpaces(spaces) + "[" + i + "]=";
if(getTypeof(o[i]) == "object" || getTypeof(o[i]) == "array") {
str += parseJSON(o[i], spaces + 1) + "\n";
} else {
type = getTypeof(o[i]);
if(type == "string") {
str += "\"" + o[i] + "\"";
} else if(type == "number") {
str += o[i];
}
str += "\n";
}
}
str += getSpaces(spaces - 1 < 0 ? 0 : spaces - 1) + "]";
}
return str;
}
private static function getSpaces(n:int):String {
var str:String = "";
for(var i:int=0; i<n; i++) {
str += " ";
}
return str;
}
// private static function getTypeof(o:*):String {
// return typeof(o) == "object" ? (o.length == null ? "object" : "array") : typeof(o);
// }
}
}
[ActionScript 3.0] AS3 实现XML转换成JSON的更多相关文章
- 如何在ASP.NET中用C#将XML转换成JSON
本文旨在介绍如果通过C#将获取到的XML文档转换成对应的JSON格式字符串,然后将其输出到页面前端,以供JavaScript代码解析使用.或许你可以直接利用JavaScript代码通过Ajax的方式来 ...
- 如何在ASP.NET中用C#将XML转换成JSON 【转】
本文旨在介绍如果通过C#将获取到的XML文档转换成对应的JSON格式字符串,然后将其输出到页面前端,以供JavaScript代码解析使用.或许你可以直接利用JavaScript代码通过Ajax的方 ...
- C#将XML转换成JSON转换XML
原文:C#将XML转换成JSON转换XML using System; using System.Collections.Generic; using System.Linq; using Syste ...
- C#将XML转换成JSON 使用 JavaScript 将 XML 转成 JSON
如何在ASP.NET中用C#将XML转换成JSON [JavaScript]代码 // Changes XML to JSON function xmlToJson(xml) { // Create ...
- 将xml转换成Json,数组,对象格式转换方法
xml字符串:$simplexml 转换成Json格式:json_encode($simplexml) 转换成数组格式:json_decode(json_encode($simplexml),TRUE ...
- [ActionScript 3.0] as3处理xml的功能和遍历节点
as3比as2处理xml的功能增强了N倍,获取或遍历节点非常之方便,类似于json对像的处理方式. XML 的一个强大功能是它能够通过文本字符的线性字符串提供复杂的嵌套数据.将数据加载到 XML 对象 ...
- 用C#将XML转换成JSON
本文旨在介绍如果通过C#将获取到的XML文档转换成对应的JSON格式字符串,然后将其输出到页面前端,以供JavaScript代码解析使用.或许你可以直接利用JavaScript代码通过Ajax的方式来 ...
- [ActionScript 3.0] AS3 对XML的操作,创建、删除、增加节点方法
package { import flash.display.Sprite; /** * @author:Frost.Yen * @E-mail:871979853@qq.com * @create: ...
- python将xml转换成json数据
# -*- coding: utf-8 -*- import requests import xmltodict import json def get_response(request_url): ...
随机推荐
- PHP包名解释
下载地址: http://windows.php.net/download#php-5.5 下载到的php*.zip各项文件说明: php-5.6.26-nts-Win32-VC11-x ...
- FrameBuffer
http://blog.csdn.net/luxiaoxun/article/details/7622988 http://blog.csdn.net/godspirits/article/detai ...
- unity, collider/trigger on children
参考:http://answers.unity3d.com/questions/410711/trigger-in-child-object-calls-ontriggerenter-in-pa.ht ...
- ActionContext表格总结
用一张表格来总结: 变量 从ActionContext中获得 生命周期 用Ongl来读取值 使用ServletConfigInterceptor来注入 ActionContext类 静态方法Actio ...
- Jmeter使用
好久没有试过Jmeter了,下载个新版本试试,顺便温习一下. 1. 如何修改JMeter语言环境 在菜单栏中通过“选项”–“选择语言”选了英文后,下次登录JMeter,还是显示的中文,修改语言无效.关 ...
- [Android设计模式]Android退出应用程序终极方法
如何干净彻底地退出Android应用程序,是很多开发者的心头痒.如何干净地关闭所有已打开的Activity? 如何关闭指定的Activity? 如何关闭一类Activity? 这里,我们提出一种通过实 ...
- hibernate的工作原理
hibernate的工作原理1.Hibernate 的初始化.读取Hibernate 的配置信息-〉创建Session Factory1)创建Configeration类的实例.它的构造方法:将配置信 ...
- jenkins:应用篇(Gatling plugin的使用)
Jenkins的功能强大,在于它的插件式框架,能扩展功能,自动化当中,很容易想到的是对提交的新代码做测试,这里gatling主要是负责压力测试,也就是所谓的性能.关于gatling,可以参考我前面的博 ...
- Spring入门学习(一)
SpringMVC基础平台补充(2016.03.03) 如果想要开发SpringMVC,那么前期依次安装好:JDK(jdk-8u74-windows-x64,安装后配置环境变量JAVA_HOME和CL ...
- IOS开发-cell的动态高度
tableView中自定义cell的高度随子控件的内容动态变化,也是用的非常多的地方.现在就来处理一个自定义一个里面有文字(多少不定),图片(有无不定)的cell 首先要准备两个模型,一个是存放数据的 ...