JSON — java script object notation JS对象表示法。 json的格式和js对象格式相同,js中对象的属性名加不加双引号都可以,但在json中对象的属性名必须加双引号,其他的与js语法一致。
{
"name" : "武松",
"age" : 18,
"sex" : "男"
}
//js对象
var jsObj = {
name : "武松",
age : 18,
sex : "男"
}
//json字符串
var Json = '{"name" : "武松","age" : 18,"sex" : "男"}'
为了实现前后端资源的互传,如后台的数据发往网页,获取网页从服务器请求数据
由于服务器和网页的编写语言不同,二者编写的数据内容不能互相识别,每种语言只能认识属于自己语法规范的数据信息。
我们将js的对象转化为字符串,这样其他的语言都可以进行识别,这种字符串就叫做JSON字符串。
JSON就是一种特殊格式的字符串,这样的一种字符串可以被任意一种语言进行识别,并转换为任意语言的对象从中读取信息。
这样就实现了网页和服务器的数据交互(不同语言之间)。
Json分类:
1. 对象{ }
2. 数组[ ]
//对象
let obj = '{
"name" : "武松",
"age" : 18,
"sex" : "男"
}'
//数组
let arr = '["武大郎",20,"男"]';
Json中允许的值:
1. 字符串
2. 数值
3. 布尔值
4. null
5. 对象,不包括函数对象,不能传函数
6. 数组
JSON和JS对象的相互转换 (IE7以下版本不适用 可采用eval函数)
//js对象
var jsObj = {
name : "武松",
age : 18,
sex : "男"
}
//json字符串
var Json = '{"name" : "武松","age" : 18,"sex" : "男"}'
/**
* json字符串与js对象转换
* - js中提供一个工具类JSON可以帮助我们实现js对象和字符串的相互转换
* 1. json --> js对象
* JSON.parse(Json)
* 2. js对象转化为JSON
* JSON.stringify(json)
*/
var json = JSON.parse(Json);
//js -->json
var jsObject = JSON.stringify(jsObj);
console.log(json)
console.log(jsObject)
eval()
- 这个函数可以用来执行一段字符串形成的js代码,并且会将执行的结果返回
- 如果使用eval执行的字符串中含有{},它会将{}当成代码块,在字符串前后加一个()就不会识别为代码块
- 在开发尽量不要使用,性能差 存在安全隐患
-
var str = “alter('test')”
var obj = eval("("+str+")")