Json基础

Json是什么

  1. JSON 或者 JavaScript 对象表示法是一种轻量级的基于文本的开放标准,被设计用于可读的数据交换。约定使用 JSON 的程序包括 C,C++,Java,Python,Perl 等等。

  2. JSON 是 JavaScript Object Notation 的缩写。
    这个格式由 Douglas Crockford 提出。
    被设计用于可读的数据交换。
    它是从 JavaScript 脚本语言中演变而来。
    文件名扩展是 .json。

  3. JSON 的网络媒体类型是 application/json。
    统一标示符类型(Uniform Type Identifier)是 public.json

  4. JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)

  5. JSON是轻量级的文本数据交换格式

  6. JSON 独立于语言 *

  7. JSON 具有自我描述性,更易理解

Json语法

1. Json包括的内容

数据使用名/值对表示。
使用大括号保存对象,每个名称后面跟着一个 ‘:’(冒号),名/值对使用 ,(逗号)分割。
使用方括号保存数组,数组值使用 ,(逗号)分割。

2. Json的数据结构

名/值对集合: 这一数据结构由不同的编程语言支持。
有序的值列表: 包括数组,列表,向量或序列等等。

3. Json的语法规则

  • 数据在名称/值对中

    名称/值对包括字段名称(在双引号中),后面写一个冒号,然后是值:

    “firstName” : “John”

  • 数据由逗号分隔

    { “firstName”:“John” , “lastName”:“Doe” }

  • 花括号保存对象

    { “firstName”:“John” , “lastName”:“Doe” }

  • 方括号保存数组

    {
    “employees”: [
    { “firstName”:“John” , “lastName”:“Doe” },
    { “firstName”:“Anna” , “lastName”:“Smith” },
    { “firstName”:“Peter” , “lastName”:“Jones” }
    ]
    }

  • JSON 布尔值

    { “flag”:true }
    { “flag”:false}

  • JSON null

    { “w3cschool”:null }

4. Json的数据类型

  • 数字类型
    JavaScript 中的双精度浮点型格式,取决于实现。
    不能使用八进制和十六进制格式。
    在数字中不能使用 NaN 和 Infinity。

    类型描述
    整形数字1-9,0和正负数
    分数分数,比如 .3,.9
    指数比如 e,e+,e-,E,E+,E-

    var obj = {marks: 97}

  • 字符串型
    零个或多个双引号包裹的 Unicode 字符以及反斜杠转义序列。
    字符就是只有一个字符的字符串,长度为 1。

    类型描述
    "双引号
    \反斜线
    /斜线
    b退格符
    f换页符
    n换行符
    r回车符
    t水平制表符
    u四位十六进制数字

    var obj = {name: ‘Amit’}

  • 布尔型

    它包含 true 和 false 两个值。

    var obj = {name: ‘Amit’, marks: 97, distinction: true}

  • 数组
    它是一个有序的值集合。
    使用方括号闭合,这意味着数组以 [ 开始,以 ] 结尾。
    值使用 ,(逗号)分割。
    数组索引可以以 0 或 1 开始。
    当键名是连续的整数时应该使用数组。

    {
       "books": [
           { "language":"Java" , "edition":"second" },
           { "language":"C++" , "lastName":"fifth" },
           { "language":"C" , "lastName":"third" }
       ]
    }
    
  • 对象
    它是一个无序的名/值对集合。
    对象使用大括号闭合,以 ‘{’ 开始,以 ‘}’ 结尾。
    每个名称后面都跟随一个 ‘:’(冒号),名/值对使用 ,(逗号)分割。
    键名必须是字符串,并且不能同名。
    当键名是任意字符串时应该使用对象。

    { string : value, …}

    {
    “id”: “011A”,
    “language”: “JAVA”,
    “price”: 500,
    }

  • 空格
    可以在任意一对符号之间插入。可以添加用来让代码更可读。
    下面的例子展示了使用空格和不使用空格的声明:

    {string:" ",…}

    var i= " sachin";
    var j = " saurav"

  • null
    意味着空类型。

    var i = null;

    var i = null;
    
    if(i==1) {
        document.write("<h1>value is 1</h1>");  
    } else {
        document.write("<h1>value is null</h1>");
    }
    

    Json对象的创建和访问

  • 创建一个简单的Json对象

    var JSONObj = new Object();//创建新对象

    var JSONObj = {};//创建空对象

    var JSONObj = { "bookname ":“VB BLACK BOOK”, “price”:500 };

  • Json对象的访问,和C的结构体访问方式类似

    <html>
    <head>
    <title>在JavaScript中使用JSON创建对象(w3cschool.cn)</title>
    <script language="javascript" >
    
        var JSONObj = { "name" : "编程狮(w3cschool.cn)", "time"  : 2020 };
        document.write("<h1>JSON和JavaScript的例子</h1>");
        document.write("<h3>网站的名字="+JSONObj.name+"</h3>");  
        document.write("<h3>时间="+JSONObj.time+"</h3>");  
    	document.write("<h3>时间="+JSONObj["time"]+"</h3>"); 
    </script>
    </head>
    <body>
    </body>
    </html>
    
  • 创建数组对象

    var books = {
        "Pascal" : [ 
            { "Name"  : "Pascal Made Simple", "price" : 700 },
            { "Name"  : "Guide to Pascal", "price" : 400 }
        ],                       
        "Scala"  : [
            { "Name"  : "Scala for the Impatient", "price" : 1000 }, 
            { "Name"  : "Scala in Depth", "price" : 1300 }
        ]    
    }    
    
  • 嵌套 JSON 对象

    myObj = {
        "name":"w3cschool",
        "alexa":10000,
        "sites": {
            "site1":"www.w3cschool.cn",
            "site2":"m.w3cschool.cn",
            "site3":"c.w3cschool.cn"
        }
    }
    

    嵌套Json对象的访问
    x = myObj.sites.site1;
    // 或者
    x = myObj.sites[“site1”];

    嵌套Json对象值的修改
    x = myObj.sites.site1 = “www.baidu.com”;
    // 或者
    x = myObj.sites[“site1”] = “www.baidu.com”;

  • JSON 对象和字符串的区别

    JSON 对象

    var str2 = { “name”: “asan”, “sex”: “man” };

    JSON 字符串

    var str1 = ‘{ “name”: “deyuyi”, “sex”: “man” }’;

    参阅:https://www.w3cschool.cn/json/9l4f1h7u.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值