JSON 基本使用

2021-07-14  本文已影响0人  兮动人

欢迎关注我的CSDN博客,里面发布了大量学习笔记。
https://xdr630.blog.csdn.net/

1. JSON 是什么?

2. JSON 的语法规则是怎样的?

JSON 的语法规则十分简单,可称得上“优雅完美”,总结起来有:

{
    "name": "xdr630",
    "favorite": "programming"
}

3. JSON 和 XML

JSON常被拿来与XML做比较,因为JSON 的诞生本来就多多少少要有取代XNL的意思。相比 XML,JSON的优势如下:

两者比较

{
    "name":"兮动人",
    "age":22,
    "fruits":["apple","pear","grape"]
}
<root>
    <name>兮动人</name>
    <age>22</age>
    <fruits>apple</fruits>
    <fruits>pear</fruits>
    <fruits>grape</fruits>
</root>

4. JSON的解析和生成(JSON 和 JS 对象互转)

JSON 和 JS 对象互转

  1. 要实现从JSON字符串转换为JS对象,使用 JSON.parse() 方法:
<script>
    var str = '{"name": "兮动人","age":22}';
    var obj = JSON.parse(str);
    console.log(obj);
</script>
在这里插入图片描述
  1. 要实现从JS对象转换为JSON字符串,使用 JSON.stringify() 方法:
<script>
    var str = '{"name": "兮动人","age":22}';
    var obj = JSON.parse(str);
    console.log(obj);
        
    var jsonstr = JSON.stringify(obj);
    console.log(jsonstr);
</script>
在这里插入图片描述

5. JSON格式规定

在这里插入图片描述

1、对象(0bject)

  1. 使用英文的逗号(“,”),不要用中文的逗号(“”)
  2. 最后一个“名称/值对“之后不要加逗号
[1,2,"three","four",true,false,null,[1,2],{"name":"兮动人"}]
在这里插入图片描述

3、名称/值对(Name/Value)

字符串(string)的规则如下:

  1. 英文双引号括起来,不能用单引号,也不能没有。
  2. 字符串中不能单独出现双引号()和右斜杠(“\")。
  3. 如果要打双引号或右斜杠,需要使用“右斜杠+字符”的形式,例如\”\\,其它的转义字符也是如此字符串的概念图。
    在这里插入图片描述
{
"string":"\\ \" "
}
在这里插入图片描述
{
"number":1e3,
"n1":1e2,
"n2":-100
}
在这里插入图片描述

6. 字符串转化成对象

在这里插入图片描述
  1. 使用eval()
  2. 使用JSON.parse()
  3. 使用第三方库,例如JQuery等

1、 eval()

<script>
    var str = "console.log('hello')";
    eval(str);
</script>
在这里插入图片描述
<script>
    var str = '{"name":"兮动人","age":22}';
    var obj = eval("("+str+")");
    console.log(obj)
</script>
在这里插入图片描述

2、JSON. parse()

案例:JSON字符串转换为JS对象

<script>
    var str = '{"name":"兮动人","age":22}';
    var obj = JSON.parse(str)
    console.log(obj)
</script>
在这里插入图片描述

案例:

<script>
    var str = '{"name":"兮动人","age":22}';
    var obj = JSON.parse(str,fun);
    function fun(name,value){
        console.log(name+":"+value);
        return value
    }
    console.log(obj)
</script>
在这里插入图片描述
<script>
    var str = '{"name":"兮动人","age":22}';
    var obj = JSON.parse(str,fun);
    function fun(name,value){
    if (name == "age")
        value = 14;
        return value
    }
    console.log(obj)
</script>
在这里插入图片描述

7. JS对象转化为字符串

在这里插入图片描述

1、参数的含义

JSON.stringify(value[, replacer[, space]])
  1. value:必选参数。被变换的JavaScript值,一般是对象或数组。
  2. replace:可以省略。有两种选择:函数或数组。

案例:

<script>
        var obj = {
            name: "兮动人",
            age: 22
        };
        console.log(obj);

        var jsonstr = JSON.stringify(obj,fun);

        function fun(name,value) {
            if (name=="age")
                value = 18;
                return value;
         }

        console.log(jsonstr)

</script>
在这里插入图片描述
<script>
        var obj = {
            a: 1,
            b: 2,
            c: 3,
            d: 4
        };
        console.log(obj);

        var jsonstr = JSON.stringify(obj,["a","b","c"]);
        
        console.log(jsonstr)
</script>
在这里插入图片描述
var jsonstr = JSON.stringify(obj,["c","a","b"]);
在这里插入图片描述
  1. space:可以省略。这是为了排版、方便阅读而存在的。可以在JSON字符串中添加空白或制表符等。

2、value的用法

<script>
var obj = {
            name: "兮动人",
            age: 22
        }
    console.log(obj);
    var jsonstr = JSON.stringify(obj);
    console.log(jsonstr)
</script>
在这里插入图片描述
<script>
    var obj = {
            name: "兮动人",
            age: 22,
            a: undefined,
            f: function () {

            },
            b:[function () {}]
        }
    console.log(obj);
    var jsonstr = JSON.stringify(obj);
    console.log(jsonstr)        
</script>
在这里插入图片描述

3、replace的用法

4、space的用法

<script>
        var obj = {
            a: 1,
            b: 2,
            c: 3,
            d: 4
        };
        console.log(obj);

        var jsonstr = JSON.stringify(obj,["c","a","b"],"one");

        console.log(jsonstr)
</script>
在这里插入图片描述
<script>
        var obj = {
            a: 1,
            b: 2,
            c: 3,
            d: 4
        };
        console.log(obj);

        var jsonstr = JSON.stringify(obj,["c","a","b"],"\t");

        console.log(jsonstr)
</script>
在这里插入图片描述
上一篇 下一篇

猜你喜欢

热点阅读