Flash中JSON的使用
来源:互联网 发布:thug life 视频软件 编辑:程序博客网 时间:2024/05/22 12:08
在AS中使用json其实并不是一个必须或是很好的选择,因为AS对xml的解析已经很不错了,但是为什么可以考虑使用 json呢,有以下几点:
json是介于单纯的文本方式(如:
下面是教程,比较简单:
1、服务器端来的json
怎么样获得服务器端的json我就不说了吧(就是通讯),那么得到的应该是一个字符串,存入变量serverJSON,使用方式如下:
import json.*;
//json格式字符串 存入变量:serverJSON;
var serverJSON:String = '{ "programmers": [{ "firstName": "Brett", "lastName":"McLaughlin", "email": "brett@newInstance.com" },{ "firstName": "Jason", "lastName":"Hunter", "email": "jason@servlets.com" }, { "firstName": "Elliotte", "lastName":"Harold", "email": "elharo@macfaq.com" }],"authors": [{ "firstName": "Isaac", "lastName": "Asimov", "genre": "science fiction" },{ "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" },{ "firstName": "Frank", "lastName": "Peretti", "genre": "christian fiction" }],"musicians": [{ "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" },{ "firstName": "Sergei", "lastName": "Rachmaninoff", "instrument": "piano" }]}'
//开始使用
var json:Object = new Object();
json = JSON.decode(serverJSON);
trace(json.programmers[0].firstName);//输出:Brett;
json就是一个对象了,简单吧。
不是吧这么简单。其实转变后就成为一个对象了,可以通过点语法来访问这些值了。XML靠边去。
2、本地对象做成JSON
你要是能自己拼出JSON字符串也可以,不过我们是在面向对象的世界啊,那么我们都是对象啊,到时候对象直接就可以来用了。
举一个例子:
import json.*;
var myObject:Object = new Object();
myObject.ab = "adfsdf";
myObject.cd = Math.random();
trace(JSON.encode( myObject ));//输出:{"ab":"adfsdf","cd":0.0599129400216043}
这样就可以给服务器了。
总结:就两个方法,JSON.decode(String),JSON.encode(Object),有这么简单的方式实现传输量小,而且简单的数据格 式,我们为什么还不用呢?
其实XML自然也有他自己的强势,当一个结构复杂的数据结构出现的时候,这个时候JSON就很难搞定了,XML就是首选了。
json是介于单纯的文本方式(如:
- firstName=Brett&lastName=McLaughlin& email=brett@newInstance.com)和xml(<request><firstName>Brett& lt;/firstName><lastName>McLaughlin< /lastName><email>brett@newInstance.com</email>< /request>)中间的一种格式,他具有文本和xml的中性优势:数据量小和清晰的数据格式。
- json是JavaScript Object Notation的简写,那么意思就是说他是来自于javascript的东西。因为现在ajax的流行,大部分网站会采用ajax的模式和构架,那么 json会是一个数据传输的首选(文本方式太简单,要是大数据量的时候无法理解,xml的方式数据量大,在解析的时候会增加服务器负担),那么要是一个网 站从ajax构架的基础上出一个flex/flash版的界面的时候使用json会最少地减少服务器端的程序改动。
- 服务器端现在有成熟的JSON解析代码(因为JSON运用太广泛了),那么在开发的时候也不用担心服务器 端的解析。
下面是教程,比较简单:
1、服务器端来的json
怎么样获得服务器端的json我就不说了吧(就是通讯),那么得到的应该是一个字符串,存入变量serverJSON,使用方式如下:
程序代码
import json.*;
//json格式字符串 存入变量:serverJSON;
var serverJSON:String = '{ "programmers": [{ "firstName": "Brett", "lastName":"McLaughlin", "email": "brett@newInstance.com" },{ "firstName": "Jason", "lastName":"Hunter", "email": "jason@servlets.com" }, { "firstName": "Elliotte", "lastName":"Harold", "email": "elharo@macfaq.com" }],"authors": [{ "firstName": "Isaac", "lastName": "Asimov", "genre": "science fiction" },{ "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" },{ "firstName": "Frank", "lastName": "Peretti", "genre": "christian fiction" }],"musicians": [{ "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" },{ "firstName": "Sergei", "lastName": "Rachmaninoff", "instrument": "piano" }]}'
//开始使用
var json:Object = new Object();
json = JSON.decode(serverJSON);
trace(json.programmers[0].firstName);//输出:Brett;
json就是一个对象了,简单吧。
不是吧这么简单。其实转变后就成为一个对象了,可以通过点语法来访问这些值了。XML靠边去。
2、本地对象做成JSON
你要是能自己拼出JSON字符串也可以,不过我们是在面向对象的世界啊,那么我们都是对象啊,到时候对象直接就可以来用了。
举一个例子:
程序代码
import json.*;
var myObject:Object = new Object();
myObject.ab = "adfsdf";
myObject.cd = Math.random();
trace(JSON.encode( myObject ));//输出:{"ab":"adfsdf","cd":0.0599129400216043}
这样就可以给服务器了。
总结:就两个方法,JSON.decode(String),JSON.encode(Object),有这么简单的方式实现传输量小,而且简单的数据格 式,我们为什么还不用呢?
其实XML自然也有他自己的强势,当一个结构复杂的数据结构出现的时候,这个时候JSON就很难搞定了,XML就是首选了。
- Flash中JSON的使用
- Flash中DataGrid的使用
- Flash中DataGrid的使用
- flash中cacheAsBitmap的使用
- flash中cacheAsBitmap的使用
- JSON 中JsonConfig的使用
- java中json的使用
- JSON 中JsonConfig的使用
- Android中Json的使用
- struts2中json的使用
- JavaScript中JSON的使用
- Struts中JSON的使用
- JSON 中JsonConfig的使用
- java中json的使用
- JFinal中json的使用
- android中json的使用
- java 中json的使用
- Asp中JSON的使用
- Android交互体验必知:功能按键事件
- 括号配对问题
- 有关T-SQL的10个好习惯
- Linux 2.4.x内核中网络协议栈QoS模块(TC)的设计与实现
- 理解EnterCriticalSection 临界区
- Flash中JSON的使用
- 今天复习的内容
- eval解析JSON中的注意点
- socket通信:C#实现Socket通信
- linux进程间传递描述符
- DAG单源最短路径
- Invalid ActiveMQ Schema Name Space
- Ios左右菜单PPRevealSideviewController使用的一些心得
- 利用OpenCV计算并绘制灰度直方图 (转载)