`

JavaScript对象与JSON

阅读更多
对象的声明有三种方式:



Ø  通过new操作符作用域Object对象,构造一个新的对象,然后动态的添加属性,从无到有的构筑一个对象。

Ø  定义对象的“类”:原型,然后使用new操作符来批量的构筑新的对象。

Ø  使用JSON,这个在下一节来进行详细说明



这一节我们详细说明第二种方式,如:

//定义一个"类",Address   
function Address(street, xno){   
    this.street = street || 'Huang Quan Road';   
    this.xno = xno || 135;   
    this.toString = function(){   
       return "street : " + this.street + ", No : " + this.xno;      
    }   
}   
    
//定义另一个"类",Person   
function Person (name, age, addr) {   
  this.name = name || 'unknown';   
  this.age = age;   
  this.addr = addr || new Address(null, null);   
  this.getName = function () {return this.name;}   
  this.getAge = function(){return this.age;}   
  this.getAddr = function(){return this.addr.toString();}   
}   
    
//通过new操作符来创建两个对象,注意,这两个对象是相互独立的实体   
var jack = new Person('jack', 26, new Address('Qing Hai Road', 123));   
var abruzzi = new Person('abruzzi', 26);   
    
//查看结果   
print(jack.getName());   
print(jack.getAge());   
print(jack.getAddr());   
    
print(abruzzi.getName());   
print(abruzzi.getAge());   
print(abruzzi.getAddr()); 

运行结果:(????为什么)

jack
26
street : Qing Hai Road, No : 123
abruzzi
26
street : Huang Quan Road, No : 135


JSON及其使用
JSON全称为JavaScript对象表示法(JavaScript Object Notation),即通过字面量来表示一个对象,从简单到复杂均可使用此方式。比如:
var obj = {   
    name : "abruzzi",   
    age : 26,   
    birthday : new Date(1984, 4, 5),   
    addr : {   
       street : "Huang Quan Road",   
       xno : "135"  
    }   
}

大多数有经验的JavaScript程序员更倾向与使用这种表示法,包括很多JavaScript的工具包如jQuery,ExtJS等都大量的使用了JSON。JSON事实上已经作为一种前端与服务器端的数据交换格式,前端程序通过Ajax发送JSON对象到后端,服务器端脚本对JSON进行解析,还原成服务器端对象,然后做一些处理,反馈给前端的仍然是JSON对象,使用同一的数据格式,可以降低出错的概率。

         而且,JSON格式的数据本身是可以递归的,也就是说,可以表达任意复杂的数据形式。JSON的写法很简单,即用花括号括起来的键值对,键值对通过冒号隔开,而值可以是任意的JavaScript对象,如简单对象String,Boolean,Number,Null,或者复杂对象如Date,Object,其他自定义的对象等。

         JSON的另一个应用场景是:当一个函数拥有多个返回值时,在传统的面向对象语言中,我们需要组织一个对象,然后返回,而JavaScript则完全不需要这么麻烦,比如:
function point(left, top){   
    this.left = left;   
    this.top = top;   
    //handle the left and top   
    return {x: this.left, y:this.top};   
} 


直接动态的构建一个新的匿名对象返回即可:
var pos = point(3, 4);  
//pos.x = 3;  
//pos.y = 4;
使用JSON返回对象,这个对象可以有任意复杂的结构,甚至可以包括函数对象。

在实际的编程中,我们通常需要遍历一个JavaScript对象,事先我们对对象的内容一无所知。怎么做呢?JavaScript提供了for..in形式的语法糖:
for(var item in json){   
    //item为键   
    //json[item]为值   
}  

这种模式十分有用,比如,在实际的WEB应用中,对一个页面元素需要设置一些属性,这些属性是事先不知道的,比如:
var style = {  
    border:"1px solid #ccc",  
    color:"blue" 
};
然后,我们给一个DOM元素动态的添加这些属性:

for(var item in style){  
    //使用jQuery的选择器  
    $("div#element").css(item, style[item]);  


当然,jQuery有更好的办法来做这样一件事,这里只是举例子,应该注意的是,我们在给$("div#element")添加属性的时候,我们对style的结构是不清楚的。



另外比如我们需要收集一些用户的自定义设置,也可以通过公开一个JSON对象,用户将需要设置的内容填入这个JSON,然后我们的程序对其进行处理。

分享到:
评论

相关推荐

    javascript对象转换成json

    在JavaScript中,我们可以使用内置的`JSON.stringify()`方法将JavaScript对象转换为JSON字符串。 ### JSON.stringify()方法 `JSON.stringify()`是JavaScript中的全局函数,用于将JavaScript值转换为JSON字符串。它...

    javascript object to json string

    通过使用`JSON.stringify()`,我们可以轻松地将JavaScript对象序列化为JSON格式,以便在网络上传输,存储在数据库中,或者与其他不支持JavaScript的对象交换数据。而`json2.js`这样的工具可能提供了额外的定制功能,...

    纯javascript实现json与对象的互相转换项目

    这个项目专注于使用纯JavaScript来实现JSON与JavaScript对象之间的转换,这对于数据传输、存储以及在前端和后端之间进行通信至关重要。 首先,我们需要理解JSON的基本结构。JSON是一种文本格式,主要由键值对组成,...

    javascript处理json字符串和json对象的类(含示例)

    在上述代码中,`jsonString`是一个JSON格式的字符串,通过`JSON.parse()`方法,我们将其转换为了一个JavaScript对象`jsonObject`。 二、JSON对象转换为JSON字符串 要将JavaScript对象转换为JSON字符串,可以使用`...

    Java对象与Json之间的互相转换的jar包

    这个"Java对象与Json之间的互相转换的jar包"正是提供了这样的功能。 这个jar包可能包含了如Jackson、Gson、Fastjson等流行的Java JSON库,它们各自提供了丰富的API来方便开发者进行对象与JSON的转换。 1. Jackson...

    net.sf.json.JSONObject实现Object对象与Json字符串的互转

    在进行JSON与Java对象互转时,需要注意的是,Java对象的属性必须有对应的getter和setter方法,因为`JSONObject`依赖于Java的反射机制来读取和设置属性。此外,`JSONObject`在处理枚举类型时可能需要特别处理,通常会...

    JavaScript and JSON Essentials

    JSON(JavaScript对象表示法)作为一种轻量级的数据交换格式,在这种背景下应运而生。JSON是一种基于文本的轻量级代码,用于创建对象并便于在互联网上传输数据,它的语法是JavaScript的一个子集,且自1999年标准化...

    详解JavaScript中js对象与JSON格式字符串的相互转换

    4. **JavaScript对象与JSON的转换示例**: - `JSON.stringify()`函数用于将JS对象转换为JSON格式字符串。在示例中,即使对象`jsObj2`包含了函数,`stringify()`只会保留其可序列化的部分,即`name`属性,而忽略`...

    json知识总结

    对于JavaScript对象与JSON字符串之间的转换,JavaScript提供了内置的方法如JSON.parse()来将JSON字符串转换为JavaScript对象: ```javascript var str = '{"name":"shure","age":22}'; var obj = JSON.parse(str); ...

    JavaScript中使用Json范例

    6. JSON与其他语言的数据交换:由于JSON是独立于语言的,因此它可以作为Web服务和其他应用程序之间交换数据的标准。例如,通过Ajax请求获取服务器返回的JSON数据,然后在客户端用JavaScript进行处理。 7. JSONP...

    javascript中的数组对象以及json学习笔记

    JavaScript可以通过`JSON.parse()`方法将JSON字符串转换为JavaScript对象,而`JSON.stringify()`方法则用于将JavaScript对象转换为JSON字符串。 在JavaScript中处理JSON数据时,我们经常使用`fetch`或`...

    JS中Json对象

    #### JSON与JavaScript的关系 在JavaScript语言中,一切都是对象。因此,任何可以使用JavaScript原生语法表示的数据结构都可以用JSON表示。然而,JSON比JavaScript更简单、更纯粹,仅包括最常用的数据类型:数值、...

    js中对象和面向对象与Json介绍

    在JavaScript编程中,对象是核心概念...通过这些知识点,我们可以看到JavaScript对象的定义、创建、属性和方法的访问与添加,以及JSON作为数据交换格式的应用。掌握这些概念对于深入理解和应用JavaScript编程至关重要。

    json与对象相互转换系列处理

    以下是对JSON与对象相互转换的一些详细说明: 1. **Python中的JSON操作**: - `json.dumps()`: 序列化对象到JSON字符串。例如,`json.dumps(obj, ensure_ascii=False)`可以将Python对象转化为JSON字符串,`ensure_...

    将javascript序列化为json

    标题"将javascript序列化为json"指的就是使用JavaScript的内置功能或扩展方法,将JavaScript对象转换为JSON字符串。在JavaScript标准库中,有一个内建的全局函数`JSON.stringify()`,用于将JavaScript值转换为JSON...

    json2.js 字符串转转json对象工具

    例如,如果你有一个JSON字符串`'{"name": "John", "age": 30}'`,`JSON.parse()`可以将其转换为一个JavaScript对象`{name: "John", age: 30}`。这样,你就可以通过`.name`或`.age`来访问这些属性。 2. `JSON....

    JavaScript 中处理JSON

    JSON 的核心优势在于它能够方便地与 JavaScript 对象进行转换。在 JavaScript 中,我们可以使用 `JSON.stringify()` 将一个 JavaScript 对象转换为 JSON 字符串,也可以使用 `JSON.parse()` 将 JSON 字符串转换为 ...

    json对象与字符串互转

    当收到JSON格式的字符串时,可以使用`JSON.parse()`将其转换回JavaScript对象。这个方法会解析JSON字符串,并返回一个JavaScript值。 示例: ```javascript let jsonString = '{"name":"John","age":30,"city":...

    掌握数据交换语言:JavaScript中的JSON使用全解析

    5. **JSON与JavaScript对象的区别** - JSON的属性名必须用双引号括起来,而JavaScript对象的属性名可以使用单引号或双引号。 - JSON不支持函数,而JavaScript对象可以包含函数。 - JSON不支持日期对象,而...

Global site tag (gtag.js) - Google Analytics