JSON教程–JavaScript

  JSON 是JavaScript Object Notation 的缩写,是基于Javascript 的字面量表达方式的数据格式类型。

  JSON 能够通过4种基本数据类型以及2种结构化数据类型来表示。分别为:(基本数据类型:)字符串值型、数值型、布尔  型、null型、(结构化数据类型:)对象、数组。

数据类型 实例 注意
字符串值 "FOREVER" 不能用单引号。字符串的默认编码为UTF-8
数值 12 只支持10进制书写方式
布尔值 true或false  
null值 null  
对象 {"name":"lym","id":"007"} 属性名只能用字符串的方式表示,不能用{name:lym}这样的字面量形式
数组 {1,2,'forever'} 数组中的元素可以被指定为任意类型的值

  在实际程序开发中,经常需要将 JSON 格式数据类型的字符串与 JS 对象进行相互转换

  我们在将 JSON 数据发送到外部时,需要将内部的对象转换为 JSON 字符串之后再传输,另外,在接受 JSON 数据的场合,我们又需要将 JSON 字符串转换为 JS 对象,从而方便获取数据。

  早期,一般用 eval 函数的方式将 JSON 字符串转换为 JS 对象。传递给 eval 函数的字符串将被看作是JS代码并被执行。由于被传递的字符串会被作为代码进行求值,所以其中的语句或函数调用也会一起执行。这在接受不被信任的外部 JSON 数据时是非常危险的。因此,从安全性考虑,一般情况是不建议使用 eval 函数的。此外,eval 函数本身也有些问题。

eval

  因为 eval 函数会将参数解释为JS语句,所以 {"id":1} 不会被看作是对象字面量,而会被解释为一条在代码块中有一个标签x的语句。为了让这条语句能够被解释为对象字面量,必须像 eval('({"id":1})') 一样再使用一组圆括号。

  后来,为了解决这类问题,就出现了用于分析JSON字符串的库,比较有代表性的是 json2.js

  再后来,随着 JSON 的广泛应用,JSON分析器不再以外部库的形式存在,而是在 JS 的实现中提供了用于分析 JSON 字符串的 API 。

JSON 对象的属性
属性名 说明

parse(text[, reviver])        

对参数text这一JSON字符串进行分析之后返回一个JS对象。reviver将会对每个属性调用回调函数,并将返回值赋为属性值

stringify(value[, replacer[, space]])             

将参数value转换为JSON字符串。replacer将会对每个属性调用回调函数,并将返回值赋为属性值。space则是输出是的一个缩进字符串

  将JSON字符串转换为对象:

json

  将对象转换为JSON字符串:

  将JSON字符串的数组转换为对象的数组:

json3

  将字符串型的JSON字符串转换为字符串值:

json4

最后,再总结下 JOSN 的特点:

  • JSON 是轻量级的文本数据交换格式

  • JSON 独立于语言 

  • JSON 具有自我描述性,更易理解

* JSON 使用 JavaScript 语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。


原文地址: http://liaoyuming.cn/?p=104

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值