JSON浅总

 

我们在以前的学习中了解到XML是一种结构化的数据表示方式,一种可扩展标记语言!可以把XML理解成一个微型的结构化的小的数据库,保存一些小型的数据和传输数据,有严格的显示限制。但是XML语句有些冗长和繁琐(xml文档要很多结构上的字符),为了解决这个缺点,JSON的结构化数据就出现了。



什么是JSON?


JSON和XML类型一样,都是一种结构化的数据表示方式,所以,JSON并不是JavaScript独有的数据格式,其他很多语言都可以对JSON进行解析和序列化。它也是一种数据交换格式,采用完全独立于语言的文本格式,易于编写和阅读,同时也易于机器解析和生成。

JSON是JavaScript原生格式,这意味着在JavaScript中处理JSON数据不需要任何特殊的API或工具包。



JSON的简单语法了解: 


JSON的语法可以表示三种类型的值:简单值、对象、数组。 

1、简单值:利用JSON可以表示字符串、数值、布尔值和null,但是却不支持JavaScript的特殊值undefined. 

2、对象: { "name":"Lee", "age":100 } 

3、数组: [100,"Lee",true] 

4、数组结合对象: [ { "title":"a", "num":1 }, { "title":"b", "num":2 }, { "title":"c", "num":3 } ]

见图:




注意

数组表示法和对象表示法都没有变量赋值和分号。


JSON如何使用?

JSON以一种特定的字符串形式来表示JavaScript对象。并且如果把JSON字符串赋给一个变量,那么久可以直接使用这个对象的任意个属性。例如:

<span style="font-family:KaiTi_GB2312;"><script> var user={"userID":1,"name":"Erica","Email":"nihao@163.com"}; 
alert(user.name);//直接应用属性</script> </span>


如果载入JSON文件,那么我们要使用就必须把它解析成原生JavaScript值;也可以把JavaScript编码成JSON字符串。

那么如何实现呢?

 ECMAScript5对解析JSON的行为进行规范,定义了全局对象JSON。这个JSON对象提供了两种方法:

一个是将原生JS值转换为JSON字符串的stringify()方法;

另一个是将JSON字符串转换为JS原生值的parse()方法。 


小结:

学的越多,越知道自己还有这么多不知道,继续静下心来,好好学习,以上纯属个人微浅见解,再有接触,定会实时总结更新

拷贝是指在拷贝对象时,只复制对象的引用而不复制对象本身。对于JSON.parse()方法来说,它是将一个JSON字符串解析为对应的JavaScript对象或值。 JSON.parse()方法接受一个JSON字符串作为参数,并返回解析后的JavaScript对象或值。在解析过程中,JSON.parse()会创建一个新的对象,并将原始JSON字符串中的属性和值复制到新对象中。 需要注意的是,拷贝只会复制对象的引用,而不会复制对象内部的属性和值。这意味着如果原始JSON字符串中的属性值是引用类型(如数组或对象),那么在拷贝后,新对象中的该属性仍然指向原对象中的同一引用。 以下是使用JSON.parse()进行拷贝的示例: ```javascript const jsonString = '{"name": "John", "age": 30, "hobbies": ["reading", "running"]}'; const originalObj = JSON.parse(jsonString); // 修改原始对象的属性值 originalObj.name "Tom"; originalObj.hobbies.push("swimming"); console.log(originalObj); // 输出: {: 'Tom', age: 30, hobbies: [ 'reading', 'running', 'swimming' ] } // 新对象与原始对象共享同一个hobbies数组 const copiedObj = JSON.parse(jsonString); console.log(copiedObj); // 输出: { name: 'John', age: 30, hobbies: [ 'reading', 'running', 'swimming' ] } ``` 在上述示例中,通过JSON.parse()方法将JSON字符串解析为原始对象originalObj。然后修改了originalObj的属性值,包括name和hobbies。接着使用JSON.parse()再次解析同一个JSON字符串,得到了新的对象copiedObj。可以看到,新对象copiedObj与原始对象originalObj共享同一个hobbies数组,因为拷贝只复制了引用。
评论 26
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值