zoukankan      html  css  js  c++  java
  • JSON基础知识

    1.什么是json
    •        JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)
    •        JSON 是轻量级的文本数据交换格式
    •        JSON 独立于语言 *
    •        JSON 具有自我描述性,更易理解
    2.json与XML的异同点
            相同点:
    •                JSON 是纯文本
    •                JSON 具有“自我描述性”(人类可读)
    •                JSON 具有层级结构(值中存在值)
    •                JSON 可通过 JavaScript 进行解析
    •                JSON 数据可使用 AJAX 进行传输
            异同点:
    •                没有结束标签
    •                更短
    •                读写的速度更快
    •                能够使用内建的 JavaScript eval() 方法进行解析
    •                使用数组
    •                不使用保留字
    3.为什么使用json
    对于 AJAX 应用程序来说,JSON 比XML更小、更快、更易解析:
            使用 XML
                    读取 XML 文档
                    使用 XML DOM 来循环遍历文档
                    读取值并存储在变量中
            使用 JSON
                    读取 JSON 字符串
                    用 eval() 处理 JSON 字符串
    4.json的语法
            Json语法规则
                    JSON 语法是 JavaScript 对象表示法语法的子集。
                            数据在名称/值对中
                            数据由逗号分隔
                            花括号保存对象
                            方括号保存数组
            Json名称/值对
                    名称/值对包括字段名称(在双引号中),后面写一个冒号,然后是值:
                            "firstName" : "John"
            Json值
                    数字(整数或浮点数)
                    字符串(在双引号中)
                    逻辑值(true 或 false)
                    数组(在方括号中)
                    对象(在花括号中)
                    Null
            JSON字符串:
                           var  str = '{ "name": "cxh", "sex": "man" }';
            Json对象
                    SON 对象在花括号中书写:
                    对象可以包含多个名称/值对:var str={ "name":"John" , "sex":"man" }
            Json数组
                    JSON 数组在方括号中书写:
                    数组可包含多个对象:
                    {
                            "employees": [
                                    { "firstName":"John" , "lastName":"Doe" },
                                    { "firstName":"Anna" , "lastName":"Smith" },
                                    { "firstName":"Peter" , "lastName":"Jones" }
                            ]
                    }
            employees[0].firstName
            employees[0][ "firstName"]
            Json文件
                    JSON 文件的文件类型是 ".json"
                    JSON 文本的 MIME 类型是 "application/json"
    5.json的优点
            1、基于纯文本,跨平台传递极其简单;
        2、Javascript原生支持,后台语言几乎全部支持;
        3、轻量级数据格式,占用字符数量极少,特别适合互联网传递;
        4、可读性较强,虽然比不上XML那么一目了然,但在合理的依次缩进之后还是很容易识别的;
            5、容易编写和解析,当然前提是你要知道数据结构。
    6. JSON的格式或者叫规则:
      1、JSON只有两种数据类型描述符,大括号{}和方括号[],其余英文冒号:是映射符,英文逗号,是分隔符,英文双引号""是定义符。
      2、大括号{}用来描述一组“不同类型的无序键值对集合”,方括号[]用来描述一组“相同类型的有序数据集合”。
      3、上述两种集合中若有多个子项,则通过英文逗号,进行分隔。
      4、键值对以英文冒号:进行分隔,并且建议键名都加上英文双引号"",以便于不同语言的解析。
      5、JSON内部常用数据类型无非就是字符串、数字、布尔、日期、null 这么几个,字符串必须用双引号引起来,其余的都不用,日期类型比较特殊,这里就不展开讲述了,只是建议如果客户端没有按日期排序功能需求的话,那么把日期 时间直接作为字符串传递就好,可以省去很多麻烦。
    // 描述一个人
    var person = {
        "Name": "Bob",
        "Age": 32,
        "Company": "IBM",
        "Engineer": true
    }
    // 获取这个人的信息
    var personAge = person.Age;
    // 描述几个人
    var members = [
        {
            "Name": "Bob",
            "Age": 32,
            "Company": "IBM",
            "Engineer": true
        },
        {
            "Name": "John",
            "Age": 20,
            "Company": "Oracle",
            "Engineer": false
        },
        {
            "Name": "Henry",
            "Age": 45,
            "Company": "Microsoft",
            "Engineer": false
        }
    ]
    // 读取其中John的公司名称
    var johnsCompany = members[1].Company;
    // 描述一次会议
    var conference = {
        "Conference": "Future Marketing",
        "Date": "2012-6-1",
        "Address": "Beijing",
        "Members":
        [
            {
                "Name": "Bob",
                "Age": 32,
                "Company": "IBM",
                "Engineer": true
            },
            {
                "Name": "John",
                "Age": 20,
                "Company": "Oracle",
                "Engineer": false
            },
            {
                "Name": "Henry",
                "Age": 45,
                "Company": "Microsoft",
                "Engineer": false
            }
        ]
    }
    // 读取参会者Henry是否工程师
    var henryIsAnEngineer = conference.Members[2].Engineer;

  • 相关阅读:
    MINA之心跳协议运用
    基于MINA实现server端心跳检测(KeepAliveFilter)
    求职酸甜苦辣:老陈的几次面试经历
    Java中的装箱与拆箱
    深入解析Apache Mina源码(1)——Mina的过滤器机制实现
    MINA 框架简介
    Java 开发 2.0: 现实世界中的 Redis
    mysql与mongodb、redis的性能对比,包含源代码
    80后之迷茫的一代:为什么都想去当公务员?
    NoSQL一致性
  • 原文地址:https://www.cnblogs.com/ricesm/p/5052117.html
Copyright © 2011-2022 走看看