JavaScript对象表示法-json格式-转字符串和解析-eval()函数

作者: 鲁智深 分类: JAVASCRIPT 发布时间: 2015-12-08 13:20

JSON 全称为 JavaScript Object Notation,译为 JavaScript 对象表示法。是一种轻量级的数据交换格式。

官网地址: http://www.json.org/json-zh.html

JSON 易于开发者阅读和编写,也易于计算机解析和生成。它基于JavaScript Programming Language,Standard ECMA-262 3rd Edition – December 1999的一个子集。

JSON 采用完全独立于语言的文本格式,被 Java、C#、C++、PHP、OC 等几乎所有主流语言所支持。

JSON 作为一种轻量级的文本数据交换格式,已被广泛使用于存储和交换文本数据领域。

json格式一

1
2
3
4
5
6
7
8
//“名称 / 值”对的集合。在 JavaScript 中被解释为 对象
//字符串必须用双引号括起来
{
    "name" : "艾映锋",
    "age" : 212,
    "male" : true,
    "f" : false
}

json格式二

1
2
3
//arr方式,值得列表排序
//字符串必须用双引号括起来
[1,2,23,4,5,2,4,5,true,false,"凹凸"]

json格式三

1
2
3
4
5
6
7
//JSON 存储数据的类型可以是字符串(string)、数值(number)、true、false、 null、对象(object)或者数组(array)。
//这些结构可以嵌套。
{
   "苏州":[{"name": "常熟","poe" : "1000万"},{"name": "太仓","poe" : "1030万"}],
   "上海":[{"name": "外滩","poe" : "1000万"},{"name": "浦东","poe" : "1030万"}],
   "北京":[{"name": "海淀","poe" : "1000万"},{"name": "昌平","poe" : "1030万"}],
}

json格式再js中

1
2
3
4
5
6
7
8
9
10
11
//JavaScript的对象
var obj = {
     name: "艾映锋",
     age : 87878,
     fun : function () {
         return 1;
     }
}

//JavaScript的数组
var arr = [1,2,3,45,6,6];

符合json的字符串

1
2
3
4
5
6
// 符合JSON格式要求的字符串类型
//json其本质是一串有意义的字符串数据交互格式
//数据多来自用户
var json1 = '{"name":"艾映锋","age":16,"time":"2017年12月11日"}';//名称和值对的集合
var json2 = '["艾映锋",1244,true,false,unll]';//值的有序列表
console.log(typeof json2);//string

json转字符串和解析

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>json转字符串和解析</title>
    <script>
        var a = {
            name : "艾映锋",
            age : 123,
            fun : function () {
                return 1;
            }
        }

        var str = '{ "name" : "zhangwuji","age" : 18,"male" : true,"job" : null }';

         //对象方法转换
            //将对象a转成(json形式的字符串)
            //JSON.stringify(value[, replacer [, space]])
              console.log(JSON.stringify(a));
              console.log(typeof JSON.stringify(a));//string类型
              var b = JSON.stringify(a);

            //将(json形式的字符串)转成对象a,解析
            //JSON.parse(text[, reviver])
            console.log(JSON.parse(b));
            console.log(typeof JSON.parse(b));//Object类型

        //函数转换
            //符合JSON格式的字符串(对象)转化成json数据
            var json1 = eval('('+str+')');
            console.log(json1);
            console.log(typeof json1);//Object类型

           //json数据转化为符合JSON格式的字符串(对象)
            var obj = eval('{json1}');
            console.log(obj);
            console.log(typeof obj);//Object类型
    </script>
</head>
<body>

</body>
</html>

json eval()函数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>eval()函数</title>
    <script>
        var str = '{ "name" : "zhangwuji","age" : 18,"male" : true,"job" : null }';
        /*
            eval()函数 - 将符合JSON格式的字符串转换成JSON
            * 将符合JSON格式的字符串作为参数传递给eval()函数 -> 结果为报错
              SyntaxError: Unexpected token :
            * 注意 - 强制向传递的参数添加一对小括号()
              * 结果 -> 正常地将符合JSON格式的字符串转换成JSON
         */
        var json = eval('('+str+')');
        console.log(json);

        /*
            JavaScript中大括号({})的作用
            * 大括号表示语句块 - eval()函数默认将解析为语句块 -> undefined
            * 大括号表示对象 - eval()函数强制添加小括号 -> 强制将其转换成对象
         */
        var json1 = eval('{json}');
        console.log(json1);
        console.log(typeof json1);

    </script>
</head>
<body>

</body>
</html>

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注