Json基础

2023-05-16

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Json基础 的相关文章

随机推荐

  • 人最宝贵的东西是生命

    钢铁是怎样炼成的 人最宝贵的东西是生命 生命属于人只有一次 一个人的生命是应该这样度过的 当他回首往事的时候 他不会因虚度年华而悔恨 也不会因碌碌无为而羞耻 这样在临死的时候 他才能够说 39 我的生命和全部的经历 都献给世界上最壮丽的事业
  • 树莓派卡在开机界面循环要求输入密码,提示cannot currently show the desktop

    这个必须得记录下来 xff0c 太坑了 昨天树莓派用着好好的 xff0c 突然就拷贝ssh拷贝东西进去拷贝不成功 xff0c VNC登陆图形界面 xff0c 输入密码后又循环弹出输入密码解密 xff0c 还提示 cannot current
  • FreeRTOS----debug之任务的挂起和恢复实验,任务无法切换

    任务的挂起和恢复 debug xff1a 背景 xff1a 有两个Task Task1为LED闪烁任务 Task2为挂起恢复LED任务 调试程序遇到的问题 xff1a LED灯闪烁任务不能正常执行 一直常亮 原因 xff1a LED闪烁任务
  • 提高IT运维效率,深度解读京东云AIOps落地实践(异常检测篇)

    基于深度学习对运维时序指标进行异常检测 xff0c 快速发现线上业务问题 时间序列的异常检测是实际应用中的一个关键问题 xff0c 尤其是在 IT 行业 我们没有采用传统的基于阈值的方法来实现异常检测 xff0c 而是通过深度学习提出了一种
  • Android getResources的作用和需要注意点

    今天做一个Android的文件管理器 xff0c 里面用到很多的地方用到了getResources Drawable currentIcon 61 null currentIcon 61 getResources getDrawable R
  • Mac OS X 的包管理器 HomeBrew

    Homebrew 是最简单和灵活的方式 xff0c 用来在 Mac OS X 安装 Linux 工具包 Homebrew 国内高速安装脚本 xff1a HomebrewCN Homebrew 国内安装脚本 安装过程很简单 xff1a rub
  • Android中Parcelable的原理和使用方法

    Parcelable的简单介绍 介绍Parcelable不得不先提一下Serializable接口 xff0c Serializable是Java为我们提供的一个标准化的序列化接口 那什么是序列化呢 进行Android开发的时候 xff0c
  • 小米路由器安装mt工具箱

    去年六月底的时候在小米路由3上开启了ssh 安装了mt工具箱 现在回头看来 xff0c 开启ssh的方法已经大相径庭 不过 xff0c 今天的主角换成了小米路由器pro半个月前替换掉原来的小米路由3 那么 xff0c 肯定也是要在小米路由器
  • SSD的随机读能力 和一个高访问量的读写服务系统

    昨天晚上写了个代码 xff0c 测试了下目前我这个1000块钱的SSD的随机读能力 主机配置 i5 4核 两物理核 8G内存 linux 内核版本 2 6 18 128 el5 一个50G的文件 gt gt 8G内存 防止全缓存至内存中 p
  • 系统过载及保护的思考

    家用电器为了防止电流过大 xff0c 都会有保险装置 当电流过大时 xff0c 自动切断电流 xff0c 防止电器损坏 防洪大坝的水位超过了警戒线 xff0c 会开闸泄洪 xff0c 防止大坝崩溃 而我们的服务系统如果一旦流量过大 用户或请
  • 系统调用,上下文切换及中断概念的汇总

    仔细揣摩了一段时间 系统调用和上下文切换 1 1 首先每个进程都拥有两个堆栈 用户态栈和内核态栈 1 2 每CPU变量中会有两个栈单独用于中断过程 分别用于每个独立核的软中断和硬中断 2 6 x版本后 1 3 系统调用过程 进程进入内核态
  • 吞吐量和延时

    某单机计算秘钥的服务 cpu bound 4核 xff0c 接受网络req 最大吞吐10万 s xff0c 4核cpu均达到99 以上 当吞吐达到10万 s时 xff0c 对于单个req延时是多少 xff1f 假设服务有个队列 xff08
  • io wait

    准确的说iowait只是表示在统计CPU空闲周期时间片内 xff0c 有多少时间在等待IO执行 xff0c 反应的是IO设备的性能 这里CPU并不会等待IO xff0c 但是相应的 操作IO的线程或者进程需要等到IO操作完成 以下是man
  • 技术的变革

    最近几个月陆续接触和使用了pinpoint spring cloud 构建一个成熟的分布式环境已经越来越简单了 系统的统计和监控也越来越容易了 特别是pinpoint 完全不要侵入业务逻辑 技术的发展真是可怕
  • 系统的分类

    我所接触过的系统可以分为5类 1 以关系数据库为主要存储的一类系统的 xff0c 或者附加少量数据的noSql的存储 xff0c 特点是逻辑复杂 xff0c 多变 如各类业务类系统 xff0c 传统的信息系统 中小型电商系统的各类业务系统
  • android倒计时功能的实现(CountDownTimer)

    在逛论坛的时候 xff0c 看到一个网友提问 xff0c 说到了CountDownTimer这个类 xff0c 从名字上面大家就可以看出来 xff0c 记录下载时间 将后台线程的创建和Handler队列封装成一个方便的类调用 查看了一下官方
  • 【STM32】几款常用产品(F1、F4、F7)的区别

    STM32系列单片机 xff0c 是目前极为常用的单片机 xff0c 它以ARM Cortex M为内核 xff0c 具有高性能 低成本 低功耗 可裁剪等特点 其中使用最广泛的是STM32F1 STM32F4 STM32F7系列 xff0c
  • VMware虚拟机看不到共享目录

    VMware虚拟机看不到共享目录 确认VMtools已经装好 xff0c 开启共享文件夹 xff0c 设置好共享目录执行命令 sudo mount t vmhgfs host mnt hgfs 如果出现错误 xff1a Error cann
  • 【Linux基础】Makefile基础入门

    基础Makefile规则和样例展示 基础的makefile样例 目标 xff1a 依赖 命令 单文件编译 mian o main c gcc c mian c o mian 多文件编译 mian o main c mian h includ
  • Json基础

    Json是什么 JSON 或者 JavaScript 对象表示法是一种轻量级的基于文本的开放标准 xff0c 被设计用于可读的数据交换 约定使用 JSON 的程序包括 C xff0c C 43 43 xff0c Java xff0c Pyt