dis_oo

flash\flex\AS\Unity3d\JS\HTML5\CSS3\AJAX
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

json的用法(转载)

Posted on 2011-08-26 11:55  FLASH春哥  阅读(411)  评论(0)    收藏  举报

1、服务器端来的json
怎么样获得服务器端的json我就不说了吧(就是通讯),那么得到的应该是一个字符串,存入变量serverJSON,使用方式如下:

  1. import json.*;
  2. var json:Object = new Object();
  3. json = JSON.decode(serverJSON);
复制代码


json就是一个对象了,简单吧。
举一个例子:
上面的JSON的一段代码:

  1. { "programmers": [
  2.   { "firstName": "Brett", "lastName":"McLaughlin", "email": "brett@newInstance.com" },
  3.   { "firstName": "Jason", "lastName":"Hunter", "email": "jason@servlets.com" },
  4.   { "firstName": "Elliotte", "lastName":"Harold", "email": "elharo@macfaq.com" }
  5. ],
  6. "authors": [
  7.   { "firstName": "Isaac", "lastName": "Asimov", "genre": "science fiction" },
  8.   { "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" },
  9.   { "firstName": "Frank", "lastName": "Peretti", "genre": "christian fiction" }
  10. ],
  11. "musicians": [
  12.   { "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" },
  13.   { "firstName": "Sergei", "lastName": "Rachmaninoff", "instrument": "piano" }
  14. ]
  15. }
复制代码

存入变量:serverJSON
代码:

  1. 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" }]}'
  2. var s:Object = JSON.decode(serverJSON);
  3. //开始使用
  4. trace(s.programmers[0].firstName);//输出:Brett
复制代码


不是吧这么简单。其实转变后就成为一个对象了,可以通过点语法来访问这些值了。XML靠边去。
2、本地对象做成JSON
你要是能自己拼出JSON字符串也可以,不过我们是在面向对象的世界啊,那么我们都是对象啊,到时候对象直接就可以来用了。
举一个例子:

  1. import json.*;
  2. var myObject:Object = new Object();
  3. myObject.ab = "adfsdf";
  4. myObject.cd = Math.random();
  5. trace(JSON.encode( myObject ));//输出:{"ab":"adfsdf","cd":0.0599129400216043}
复制代码


这样就可以给服务器了。
总结:就两个方法,JSON.decode(String),JSON.encode(Object),有这么简单的方式实现传输量小,而且简单的数据格式,我们为什么还不用呢?
其实XML自然也有他自己的强势,当一个结构复杂的数据结构出现的时候,这个时候JSON就很难搞定了,XML就是首选了