Flash中JSON的使用
2012-11-20 16:55
113 查看
在AS中使用json其实并不是一个必须或是很好的选择,因为AS对xml的解析已经很不错了,但是为什么可以考虑使用 json呢,有以下几点:
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运用太广泛了),那么在开发的时候也不用担心服务器 端的解析。
下面就介绍一下adobe的官方的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运用太广泛了),那么在开发的时候也不用担心服务器 端的解析。
下面就介绍一下adobe的官方的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
- [转]使用JSON加速AJAX
- json经常使用到的地方
- javascript 中使用JSON
- (转载)Newtonsoft.Json使用总结
- flash as3 的 socket 使用时策略加载方式
- 关于JSONArray的使用
- NSJSONSerialization使用——json格式字符串与dict字典的相互转换
- JWT json_token的简单使用
- json之size使用注意事项
- 使用现代C++编写的读写json的库
- 使用Wisdom RESTClient进行自动化测试,如何取消对返回的body内容的校验?对排除的JSON属性字段不做校验?
- open flash chart 使用方法
- 谈谈实用的“json”怎么使用
- JSON.parse()和JSON.stringify()使用介绍
- Android 简介json解析的使用
- 使用FastJSON,将对象或数组和JSON串互转
- 谷歌浏览器插件-jsonView插件安装与使用
- 关于双向多对一的@JsonIgnore注解使用方法
- « AFNetworking 图片的本地缓存问题 Get application bundle seed ID in iOS » AFNetworking 使用总结 (用法+JSON解析)