zoukankan      html  css  js  c++  java
  • 理解JSON的语法

    JSON语法可以分为三种类型:

    简单值

    对象

    数组

    简单值:

    5
    "Hello World"

    JavaScript字符串与JSON字符串的最大区别在于,JSON字符串必须使用双引号

    对象:

    JSON中的对象与JavaScript字面量稍微有一些不同。下面是一个JavaScript中的对象字面量

    var person={
                name:"Qianwei",
                age:22
    }

    这虽然是开发人员在JavaScript中创建对象字面量的标准方式,但JSON中的对象要求给属性加引号。

    {
                "name":"Qianwei",
                "age":22
    }

    与JavaScript的对象字面量相比,JSON对象有两个地方不一样。首先,没有申明变量(JSOn中没有变量的概念)。其次,没有末尾的分号(因为这不是JavaScript语句,所以不需要分号)。再说一遍,对象的属性必须加引号,这在JSON中是必须的。属性的值可以是简单值,也已是复杂类型值。

    {
        "name": "Qianwei",
        "age": 22,
        "school": {
            "name": "anqing",
            "lOaction": "Anqing"
        }
    }

    这个例子在顶级对象中嵌入了学校信息。虽然有两个“name”属性,但是是不一样的。

    数组:

    JSON中的第二种复杂数据类型是数组。JSON数组采用的就是JavaScript中的数组字面量形式:

    var value = [25,"hi",true]

    在JSON中,可以采用同样的语法表示同一个数组:

    [{
            "title": "Pro",
            "author": "Qianwe",
            "edition": 3,
            "year": 2100
        },
        {
            "title": "Pro",
            "author": "Qianwe",
            "edition": 4,
            "year": 2100
        },
        {
            "title": "Pro",
            "author": "Qianwe",
            "edition": 2,
            "year": 2100
        }
    ]

    解析和序列化:

    可以把JSON数据结构解析为有用的JavaScript对象。

    [{
            "title": "Pro",
            "author": "Qianwe",
            "edition": 3,
            "year": 2100
        },
        {
            "title": "Pro1",
            "author": "Qianwe",
            "edition": 4,
            "year": 2100
        },
        {
            "title": "Pro2",
            "author": "Qianwe",
            "edition": 2,
            "year": 2100
        }
    ]
    
    ------------------------------------------------------------
    books[2].title                //pro2

    JSON对象:

    JSON对象有两个方法:stringify()和parse()。在最简单的情况下,这两个方法分别用于把JavaScript对象序列化为JSON字符串和把JSON字符串解析为原生的JavaScript值。

        var books = {
            "title": "Pro",
            "author": "Qianwe",
            "edition": 4,
            "year": 2100
        };
    
        var jsonText = JSON.stringify(books);
    
        console.log(jsonText)       //{"title":"Pro","author":"Qianwe","edition":4,"year":2100}
        console.log(typeof jsonText)        //string
    var books = {
            "title": "Pro",
            "author": "Qianwe",
            "edition": 4,
            "year": 2100
        };
    
        var jsonText = JSON.stringify(books);
    
        console.log(jsonText) //{"title":"Pro","author":"Qianwe","edition":4,"year":2100}
        console.log(typeof jsonText) //string
    
        var parseText = JSON.parse(jsonText);
        console.log(parseText)
            /*
            {title: "Pro", author: "Qianwe", edition: 4, year: 2100}
                author
                :
                "Qianwe"
                edition
                :
                4
                title
                :
                "Pro"
                year
                :
                2100
                __proto__
                :
                Object
            */
        console.log(typeof parseText) //object
  • 相关阅读:
    查看本机安装了哪些.Net Framework版本的方法
    tomcat启动超时, Server Tomcat v6.0 Server at localhost was unable to start within 45 seconds...
    设置PL/SQL Developer 字符集
    JDK安装与环境变量配置
    function 与 => 的区别
    如何使用tomcat,使用域名直接访问javaweb项目首页
    Spring整合Struts2
    Oracle to_char函数的使用方法
    PLSQL 误删表恢复操作
    Python可视化动态图表,基于Python环境,使用jupyter notebook编辑ipynb文件,基于pyecharts生成Sankey的桑基图HTML制作
  • 原文地址:https://www.cnblogs.com/QianBoy/p/8481180.html
Copyright © 2011-2022 走看看