- 浏览: 100547 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
chensong215:
无法获取到ProgressEvent中的bytesTotal
自定义DownloadProgressBar -
qq2464785999:
非常感谢。
测试后,发现要用相对路径的话,好像要这么写
va ...
Flex写XML文件
近发现有不少通过“AS3 json”关键词搜索过来的朋友,可见还是有很多朋友对这方面关注的。不过现下有关AS3 JSON的文章是少之又少,网上搜索到的基本上也都是那同样的几篇文章转来转去罢了,也包括我之前那篇,也没什么例子。相信会让很多初学的朋友看得云里雾里的,其实我也觉得奇怪,json其实也算蛮简单的,怎么就没人写篇好的教程呢。废话就不多说了,希望转载的朋友能注明一下出处,谢了。
首先,你需要有一个JSON的类库,建议去下载adobe官方提供的产品外类库:as3corelib。类库的使用就不多说了,大家应该都知道。
先说说获取数据。可以这么说,只要你懂AS3与XML的交互,那么就一定能懂JSON,因为两者几乎是一样的,你唯一需要做的只是了解一下JSON的格式。例如下面这个JSON的例子,就像XML一样,你可以通过任何动态页面来生成这个格式,也可以通过静态的甚至TXT来读取也行。
1
2
3
4
[{"name":"Hans","age":"32"},
{"name":"John","age":"12"},
{"name":"Zaki","age":"34"},
{"name":"Dr. Cox","age":"88"}]
AS中的代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package {
import com.adobe.serialization.json.JSON;
import flash.display.Sprite;
import flash.events.Event;
import flash.net.URLLoader;
import flash.net.URLRequest;
public class getJSON extends Sprite {
public function getJSON() {
var loader:URLLoader = new URLLoader();
loader.load(new URLRequest( "http://127.0.0.1/json.php" ));//这里是你要获取JSON的路径
loader.addEventListener(Event.COMPLETE, decodeJSON);
}
private function decodeJSON(evt:Event):void {
var persons:Array = JSON.decode( URLLoader( evt.target ).data );
//在这里,就可以通过操作数组来应用数据了,很方便
for (var i=0; i<persons.length; i++) {
trace( persons[i].name );
}
}
}
}
是不是很简单呢?在这里我们只用到了decode()这个方法,其实JSON类库要用的也只有两个方法,另一个就是马上要用到的encode()。大家可以理解为编码与解码。发送数据的代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
package {
import com.adobe.serialization.json.JSON;
import flash.display.Sprite;
import flash.events.Event;
import flash.net.*;
public class sendJSON extends Sprite {
public function sendJSON() {
var arr : Array = new Array({"name":"Hans","age":"32"},{"name":"John","age":"12"},{"name":"Zaki","age":"34"},{"name":"Dr. Cox","age":"88"});//这里是要发送的数据,可以直接写,也可以是由其他方法生成,不过要注意格式。
sendjson( arr );
}
private function sendjson( a : Array ):void {
var jsonString : String = JSON.encode(a);
var urlVariables:URLVariables = new URLVariables();
urlVariables.json = jsonString;
var urlRequest:URLRequest = new URLRequest(http://127.0.0.1/json.php); //这里是接收数据的动态页。
urlRequest.method = URLRequestMethod.POST;
urlRequest.data = urlVariables;
//其实到这已经结束了,下面的XML只是测试结果而已。
var urlLoader:URLLoader = new URLLoader();
urlLoader.addEventListener(Event.COMPLETE, onURLLoaderCompleteEvent);
urlLoader.load(urlRequest);
}
private function onURLLoaderCompleteEvent( evt : Event ):void {
var xml:XML = new XML(evt.target.data);
trace(xml);
}
}
首先,你需要有一个JSON的类库,建议去下载adobe官方提供的产品外类库:as3corelib。类库的使用就不多说了,大家应该都知道。
先说说获取数据。可以这么说,只要你懂AS3与XML的交互,那么就一定能懂JSON,因为两者几乎是一样的,你唯一需要做的只是了解一下JSON的格式。例如下面这个JSON的例子,就像XML一样,你可以通过任何动态页面来生成这个格式,也可以通过静态的甚至TXT来读取也行。
1
2
3
4
[{"name":"Hans","age":"32"},
{"name":"John","age":"12"},
{"name":"Zaki","age":"34"},
{"name":"Dr. Cox","age":"88"}]
AS中的代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package {
import com.adobe.serialization.json.JSON;
import flash.display.Sprite;
import flash.events.Event;
import flash.net.URLLoader;
import flash.net.URLRequest;
public class getJSON extends Sprite {
public function getJSON() {
var loader:URLLoader = new URLLoader();
loader.load(new URLRequest( "http://127.0.0.1/json.php" ));//这里是你要获取JSON的路径
loader.addEventListener(Event.COMPLETE, decodeJSON);
}
private function decodeJSON(evt:Event):void {
var persons:Array = JSON.decode( URLLoader( evt.target ).data );
//在这里,就可以通过操作数组来应用数据了,很方便
for (var i=0; i<persons.length; i++) {
trace( persons[i].name );
}
}
}
}
是不是很简单呢?在这里我们只用到了decode()这个方法,其实JSON类库要用的也只有两个方法,另一个就是马上要用到的encode()。大家可以理解为编码与解码。发送数据的代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
package {
import com.adobe.serialization.json.JSON;
import flash.display.Sprite;
import flash.events.Event;
import flash.net.*;
public class sendJSON extends Sprite {
public function sendJSON() {
var arr : Array = new Array({"name":"Hans","age":"32"},{"name":"John","age":"12"},{"name":"Zaki","age":"34"},{"name":"Dr. Cox","age":"88"});//这里是要发送的数据,可以直接写,也可以是由其他方法生成,不过要注意格式。
sendjson( arr );
}
private function sendjson( a : Array ):void {
var jsonString : String = JSON.encode(a);
var urlVariables:URLVariables = new URLVariables();
urlVariables.json = jsonString;
var urlRequest:URLRequest = new URLRequest(http://127.0.0.1/json.php); //这里是接收数据的动态页。
urlRequest.method = URLRequestMethod.POST;
urlRequest.data = urlVariables;
//其实到这已经结束了,下面的XML只是测试结果而已。
var urlLoader:URLLoader = new URLLoader();
urlLoader.addEventListener(Event.COMPLETE, onURLLoaderCompleteEvent);
urlLoader.load(urlRequest);
}
private function onURLLoaderCompleteEvent( evt : Event ):void {
var xml:XML = new XML(evt.target.data);
trace(xml);
}
}
发表评论
-
flex 自定义多个命名空间以及标签名
2013-01-22 15:21 1337flex 自定义多个命名空 ... -
FLEX中使用AS动态创建DataGrid
2013-01-09 16:24 920FLEX中使用AS动态创建DataGrid 2010年2月6日 ... -
flex与flash之间相互调用
2012-12-12 12:39 630http://www.cnblogs.com/kaixuan/ ... -
Flex与Flex创建的swf通信
2012-12-12 10:16 734加载子SWF的Flex程序代码 <?xml vers ... -
[AS3]加载视频(FLV)文件
2012-12-06 15:11 865[AS3]加载视频(FLV)文件 分类: FLEX/CS3-- ... -
通过FileReference打开本地图片崩溃的解决方法
2012-12-06 14:02 720通过FileReference打开本地图片崩溃的解决方法 最近 ... -
使用FileReference的load()方法加载本地图片
2012-12-06 13:56 9381、要想使用FileReference的load()方法和da ... -
[AS3]Bitmap序列化(将BitmapData保存为原生Binary/ByteArray)
2012-12-06 13:48 762[AS3]Bitmap序列化(将BitmapData保存为原生 ... -
as3 画五角星算法
2012-12-05 16:49 2633as3 画五角星算法 阅读:10次 时间:2012-03- ... -
flex嵌入完整html
2012-11-29 11:18 815有时候我们需要在Flex应用中嵌入HTML代码,根据嵌入HTM ... -
flex4 textArea的htmlText属性
2012-11-29 11:13 3119它现在包含Text布局框架(Text Layout Frame ... -
Tooltip应用
2012-11-29 11:11 733创建ToolTip: var errorToolTip:To ... -
数据绑定显示问题
2012-10-27 12:11 683数据绑定实时变化。 XMLListCollection 可以变 ... -
待解决问题
2012-09-18 23:48 7251.仪表盘 2.渐变填充的使用 3.发光效果的完美运用 能在一 ... -
as3加载外部图片的两种方式
2012-09-09 11:46 1049package net.burchin.loading { ... -
公式as3
2012-09-06 18:13 0as3 1人收藏此文章, 我要收藏 发表于1年前(2011-0 ... -
Flex中多线程的实现
2012-09-06 10:49 3524破阵子_如是我闻 如是我闻。一时佛在舍卫国,祗树给孤独园.. ... -
自定义column renderer
2012-08-09 15:07 966<?xml version="1.0" ... -
drowshadowFilter
2012-08-09 15:05 679DropShadowFilter 类,在Flash中为各种对象 ... -
123123
2012-08-08 17:16 0http://www.oschina.net/code/sni ...
相关推荐
开发者可以通过查看这些源代码学习如何在AS3中解析和生成JSON,例如使用`JSON.parse()`方法将JSON字符串转换为AS3对象,或者用`JSON.stringify()`方法将AS3对象转换为JSON字符串。 在实际开发中,JSON的使用场景...
在ActionScript 3(AS3)中,JSON同样扮演着重要的角色,使得AS3可以方便地与服务器进行数据交互,尤其是在Flash或Flex开发中。 在AS3中,处理JSON主要依赖于`flash.utils.ObjectProxy`和`flash.utils.JSON`这两个...
本篇文章将深入探讨如何在AS3中解析JSON对象,以便在应用程序中使用这些数据。 一、JSON的基本结构与类型 JSON基于JavaScript语法,主要由键值对组成,键用引号包围,值可以是字符串、数字、布尔值、数组、null或...
AS3是Adobe Flash Player和Adobe AIR应用程序的基础,它提供了一种强大的方式来处理JSON数据,这对于网络应用的数据交互至关重要。 JSON(JavaScript Object Notation)是一种文本格式,易于人阅读和编写,同时也...
在本文中,我们将深入探讨如何在Flex 4.5中使用as3corelib库来解析JSON数据。...通过灵活地使用as3corelib,你可以轻松地在Flex 4.5应用程序中实现JSON的序列化和反序列化,从而提高开发效率和代码可维护性。
在实际应用中,你可以参考这些文件来构建你的AS3 JSON加载和解析功能。 总之,AS3加载和解析JSON数据是通过`URLLoader`和`JSON.parse()`方法实现的。确保正确处理加载事件和错误,以及正确解析和使用加载的JSON数据...
这个包提供了在AS3环境中处理JSON数据的能力,使得开发者可以方便地将JSON格式的数据转换为AS3对象,或者将AS3对象转换为JSON字符串。 在ActionScript 3中,JSON是一种常见的数据交换格式,特别是在与服务器进行...
JSON在AS3.0中的使用通常涉及到序列化和反序列化,即将AS3的对象转换为JSON字符串以便在网络上传输,或者将接收到的JSON字符串解析回AS3的对象。这个工具包可能包含以下关键组件: 1. **JSON解析器**:这是一个类,...
Flex中的JSON应用主要涉及到使用ActionScript 3(AS3)处理JSON数据,这是一种轻量级的数据交换格式,常用于Web服务与客户端之间的通信。在Flex开发中,由于Flex是基于AS3的,所以理解如何在Flex中使用JSON至关重要...
在ActionScript3(AS3)中,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它允许开发者以文本形式存储和传输数据。JSON因其简单、易读、易解析的特性,在网络通信中被广泛使用。这个...
5. JSON解析:AS3CoreLib提供了`JSON`类,可以方便地将AS3对象转换为JSON字符串,以及将JSON字符串解析回AS3对象。这使得AS3与JavaScript或其他支持JSON格式的语言之间的数据交换变得更加简单。 6. 字符串处理:AS3...
`JSON`类提供了静态方法来解析JSON字符串到AS3对象,以及将AS3对象转换为JSON字符串。`JSONEncoder`则用于将ActionScript对象编码为JSON格式,但这个类不是内置的,通常需要引入第三方库。 1. **解析JSON字符串** ...
而JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,因其易于人阅读和编写,同时也易于机器解析和生成,被广泛应用于Web服务和客户端数据交换。在VB中解析JSON是一项重要的技能,特别是对于那些需要...
3. 解析JSON字符串到VB对象: ```vb Dim jsonString As String = "{""name"":""John"",""age"":30,""city"":""New York""}" Dim person As Person = JsonConvert.DeserializeObject(Of Person)(jsonString) ``` `...
3. **控制台颜色标记**:为了提高可读性,我们可以使用ANSI转义码为不同级别的JSON键值对设置不同的颜色。比如,使用`\033[31m`设置红色,`\033[0m`恢复默认颜色。 4. **深度控制**:为了防止无限递归,我们需要...
在本文中,我们将深入探讨 AS3CoreLib 的核心特性、JSON 类以及其在 Flex 开发中的应用。 首先,让我们了解 AS3CoreLib 是什么。AS3CoreLib 是由 Mike Chambers 和其他贡献者开发的一个开源项目,它提供了一系列的...
通过这些代码,你可以深入理解如何在VB6中处理JSON,从而在不更新到更现代的编程语言或框架的情况下,使你的VB6应用程序具备与JSON数据交互的能力。这个技能在维护老项目或者需要兼容旧系统时非常有用。
with open('古诗.json', 'r') as f_in, open('古诗.jsonl', 'w') as f_out: for line in f_in: obj = json.loads(line) f_out.write(json.dumps(obj) + '\n') ``` 在这个例子中,`古诗.json`是输入的JSON文件,...
在AS3中,as3corelib提供了JSON对象,使得开发者能够轻松地在AS3和服务器之间进行数据交换,通常用于Web服务通信。 "flex"标签暗示了as3corelib与Flex框架的兼容性。Flex是一个开源的、基于MXML和AS3的开发框架,...