Json与JavaScript对象

什么是JavaScript

JavaScript,是一门运行在浏览器端的脚本语言。

JavaScript诞生

JavaScript 是由网景公司在 1995 年发布的。

当时网景公司主要是做浏览器方面,他们想把 Java 语言应用在浏览器端,能够实现一些比如用户登录并验证的工作。招聘了一个新员工,叫做布兰登.艾奇,布兰登对 Java 没有兴趣,为了应付公司的任务,只用了 10 天时间就设计出了 JavaScript 这门语言。

但是 JavaScript 发展至今,随着前端开发异常的火爆,它已经是浏览器端的龙头语言了。

JavaScript对象

JavaScript 中的所有事物都是对象,比如字符串、数字、数组、日期等等。在 JavaScript 中,对象是拥有属性和方法的数据。

Json与JavaScript对象关系

Json 是 JavaScript 对象的字符串表示法,它使用文本表示一个 JavaScript 对象的信息,其本质是一个字符串。

我们通常说的 Json 对象,是 Json 格式的 JavaScript 对象或是符合 Json 数据结构要求的 JavaScript 对象。

Json与JavaScript对象对比

区别 Json Javascript对象
含义 仅仅是一种数据格式 表示类的实例
传输 可以跨平台数据传输,速度快 不能传输
键值对方式,键必须加双引号 键值对方式,键不加引号
值不能是方法函数,不能是 undefined/NaN 值可以是函数、对象、字符串、数字、boolean 等

Json和JavaScript对象互转

JavaScript对象转Json字符串

语法

var jsonStr1 = JSON.stringify([要转换的对象]); var jsonStr2 = JSON.stringify([要转换的对象],[转换函数]); var jsonStr3 = JSON.stringify([要转换的对象],[转换函数],[空白处理方法);

说明

将 JavaScript 对象转成 Json 字符串,需要使用 JSON.stringify() 函数。在 JSON.stringify() 函数里面,传入我们需要转换的 JavaScript 对象即可。

Json字符串转JavaScript对象

语法

var obj1 = eval('('+str+')'); var obj2 = JSON.parse(str);

说明

将 Json 字符串转 JavaScript 对象,有两种方法,一种是使用 eval() 函数,一种是使用 JSON.parse() 函数。

使用 eval() 函数的方式,我们只需要将待转换的 Json 字符串传入 eval() 函数即可。使用 JSON.parse() 函数的方式,我们只需要将待转换的 Json 字符串传入 JSON.parse() 函数即可。

Json注释

Json 默认不支持注释,不过我们可以使用 KEY 作为注释。

{ "?site":"url", "site":"www.haicoder.net" }

这里我们使用了 ?KEY 的形式来作为 KEY 的注释。因此我们在读取该 Json 串的时候,必须手动将 ? 开头的 KEY 过滤掉。

Json实例

{ "www.haicoder.net":[ { "HTML":["HTML", "CSS", "HTML5", "CSS3", "BOOTSTRAP"] }, { "JavaScript":["JavaScript", "ES6", "JQuery", "Vue.js"] }, { "Server":["Golang", "Java", "Php"] } ] }

我们创建了一个 Json 对象数组,该数组有三个元素,其中每一个元素都是一个对象,并且每个对象里面也都是一个数组结构。

案例

JavaScript对象转Json字符串

我们创建一个 haicoder.html 的文件,并输入以下代码:

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>JavaScript对象转成Json字符串</title> <script type="text/javascript"> console.log("嗨客网(www.haicoder.net)"); var JsonStr = JSON.stringify({name:"嗨客网", site:"www.haicoder.net", module:"JavaScript"}); console.log("JsonStr =", JsonStr); </script> </head> <body> </body> </html>

用浏览器打开该文件,浏览器输出如下图所示:

01 JS对象转成Json字符串.png

我们看到,我们传入的是 JavaScript 对象,最终在浏览器的控制台输出了 Json 字符串。即,我们使用 JSON.stringify() 函数,成功的将 JavaScript 对象转成了 Json 字符串。

Json字符串转JavaScript对象

我们创建一个 haicoder.html 的文件,并输入以下代码:

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Json字符串转JavaScript对象</title> <script type="text/javascript"> console.log("嗨客网(www.haicoder.net)"); var jsonStr = '{"name":"嗨客网","site":"www.haicoder.net","module":"JavaScript"}'; var obj = eval('('+jsonStr+')'); console.log("JavaScript Obj =", obj); </script> </head> <body> </body> </html>

用浏览器打开该文件,浏览器输出如下图所示:

02 Json字符串转JavaScript对象.png

我们看到,我们传入的是 Json 字符串,最终在浏览器的控制台输出了 Json 对象。即,我们使用 eval() 函数,成功的将 Json 字符串转成了 JavaScript 对象。

Json字符串转JavaScript对象

我们创建一个 haicoder.html 的文件,并输入以下代码:

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Json字符串转JavaScript对象</title> <script type="text/javascript"> console.log("嗨客网(www.haicoder.net)"); var jsonStr = '{"name":"嗨客网","site":"www.haicoder.net","module":"JavaScript"}'; var obj = JSON.parse(jsonStr); console.log("JavaScript Obj =", obj); </script> </head> <body> </body> </html>

用浏览器打开该文件,浏览器输出如下图所示:

03 Json字符串转JavaScript对象.png

我们看到,我们传入的是 Json 字符串,最终在浏览器的控制台输出了 Json 对象。即,我们使用 JSON.parse() 函数,成功的将 Json 字符串转成了 JavaScript 对象。

Json与JavaScript对象总结

Json 是 JavaScript 对象的字符串表示法,它使用文本表示一个 JavaScript 对象的信息,其本质是一个字符串。通常说的 Json 对象,是 Json 格式的 JavaScript 对象或是符合 Json 数据结构要求的 JavaScript 对象。

JavaScript 对象转 Json 字符串语法:

var jsonStr1 = JSON.stringify([要转换的对象]);

Json 字符串转 JavaScript 对象语法:

var obj1 = eval('('+str+')'); var obj2 = JSON.parse(str);