[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): ...
随机推荐
- 020. asp.net访问Excel文件
<asp:GridView ID="GridView1" runat="server" BackColor="#DEBA84" Bor ...
- linux服务之openfiler
架构:b/s 服务器端:封装好的linux系统 客户端:浏览器 相关包:封装好的linux系统 Openfiler imports user and group information from ce ...
- linux服务之iptables与firewalld
开发语言: 服务器端:在内核中实现,无守护程序 客户端:一般是cli界面下的iptables命令 相关包:iptables-1.4.7-11.el6.x86_64 netfilter/iptables ...
- 实时监听输入框值变化的完美方案:oninput & onpropertychange
实时监听输入框值变化的完美方案:oninput & onpropertychange: 网址:http://www.cnblogs.com/lhb25/archive/2012/11/30/o ...
- HTTP请求方法对照表
根据HTTP标准,HTTP请求可以使用多种请求方法. HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法. HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELE ...
- oracle11gRAC环境使用RMAN增量备份方案
转摘:http://blog.itpub.net/29819001/viewspace-1320977/ [oracle@zx ~]$ rman target /Recovery Manager: R ...
- [算法] 数据结构之AVL树
1 .基本概念 AVL树的复杂程度真是比二叉搜索树高了整整一个数量级——它的原理并不难弄懂,但要把它用代码实现出来还真的有点费脑筋.下面我们来看看: 1.1 AVL树是什么? AVL树本质上还是一棵 ...
- mysql frm的恢复,data里只有frm文件的恢复
mysql frm的恢复,data里只有frm文件的恢复 mysql frm的恢复,data里只有frm文件的恢复,换了系统,装了windows2003,重装最新5.4版的mysql,把原来的一个数据 ...
- 导出resource文件的的资源
写个小工具,方便一次性将resource文件中的资源导出,不然反编译后一个个找,真是太麻烦了. using System;using System.Collections.Generic;using ...
- 错误:javax.servlet.jsp.PageContext can not be to a type
在写Jsp文件时,引入script源文件(<script type="text/javascript" src="${pageContext.request.con ...