JSON 格式本就发自于 JavaScript 中的对象和数组, 所以 js 操作起来自然也是最为简单原始, 接下来我们就来看一些常用的 JavaScript 中对 JSON 对象的基本操作示例
Javascript 是一种由 Netscape 的 LiveScript 发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如 Perl,遗留的速度问题,为客户提供更流畅的浏览效果。
JSON 对象
1、对象的属性:
对象的属性是有键值对组成的,其中 key 为一个字符串,value 可以为任何的 Javascript 对象。
- //使用[]设置和获取对象的属性
- var obj = new Object();
- obj["www.phperz.com"] = "http://www.phperz.com";
- alert(obj["www.phperz.com"]);
2、变量既是属性:
Javascript 引擎在初始化时会构建一个全局对象,所有的变量都是这个全局对象的属性。为了引用这个全局对象,可以再顶级作用域中这样获取:
- var global = this;
在 Javascript 中,任何独立的函数或者变量都属于这个对象的属性,即:
- function test(){}
相当于:
- window.test = function(){}
3、使用对象:
声明对象的三种方式:
① 通过 new 操作符创建一个 Object 对象,然后动态地添加属性,从无到有构造一个对象
② 定义对象的类圆形,然后使用 new 操作符来批量构造新的对象
- //创建一个对象
- function User(username, password){
- this.username = username;
- this.password = password;
- this.getUsername = function(){
- return this.username;
- }
- this.getPassword = function(){
- return this.password;
- }
- }
- var arthinking = new User("Jason", "123");
- alert(arthinking.getUsername());
- alert(arthinking.getPassword());
③ 使用 JSON 构造对象
JSON 即 Javascript 对象表示方法(Javascript Object Notation),也就是通过字面量来表示一个对象:
- //JSON形式创建一个对象
- var arthinking = {
- username : "Jason",
- password : "123",
- favorite : {
- sports : "football",
- music : "Guitar"
- }
- }
- alert(arthinking.username);
- alert(arthinking.favorite.sports);
解析由服务器返回的 JSON 格式数据
单个 JSON 对象:
- [{
- a: '1',
- b '2'
- },
- {
- a: '3',
- b '4'
- }]
多个 JSON 对象:
- {
- "usergroups": [{
- a: '001',
- b: 'arthinking'
- },
- a: '002', b: 'Jason'
- }],
- "groups": [{
- c: '001',
- d: 'IT宅'
- }]
- }
可以根据这种格式先从后台封装好需要传递的数据,前台获取到后可以这样解析获取数据:
- //假设response.responseText为返回的JSON字符串
- //可以使用eval()函数把JSON字符串转换成Javascript语句
- //再通过"."导航获取具体属性,length属性为对象的长度
- var obj = eval( "(" + response.responseText + ")" );
- for(var i = 0; i<obj.usergroups.length; i++){
- var groupid = obj.usergroups[i].a;
- var usergroup=obj.groups;
- for(var j=0; j<usergroup.length; j++){
- if(usergroup[j].c == groupid){
- alert(groupid);
- }
- }
- }
来源: http://www.phperz.com/article/17/0224/265581.html