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;

JSON基础知识的更多相关文章

  1. JSON基础知识总结

    JSON基础 一.JSON简介 JSON,全称“JavaScript Object Notation(JavaScript对象表示法)”,起源于JavaScript的对象和数组.JSON,说白了就是J ...

  2. 使用Jquery解析Json基础知识

    前言 在WEB数据传输过程中,json是以文本,即字符串的轻量级形式传递的,而客户端一般用JS操作的是接收到的JSON对象,所以,JSON对象和JSON字符串之间的相互转换.JSON数据的解析是关键. ...

  3. JSON 基础知识总结

    JSON:JavaScript 对象表示法(JavaScript Object Notation)JSON 语法规则 数据在名称/值对中 数据由逗号分隔 花括号保存对象 方括号保存数组 JSON有6种 ...

  4. 使用Jquery解析Json基础知识(转)

    在WEB数据传输过程中,json是以文本,即字符串的轻量级形式传递的,而客户端一般用JS操作的是接收到的JSON对象,所以,JSON对象和JSON字符串之间的相互转换.JSON数据的解析是关键. 先明 ...

  5. golang基础知识之encoding/json package

    golang基础知识之json 简介 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式.可以去json.org 查看json标准的清晰定义.json pack ...

  6. [BS-12] JSON的基础知识--百科

    JSON的基础知识--百科 http://baike.baidu.com/view/136475.htm

  7. .NET面试题系列[1] - .NET框架基础知识(1)

    很明显,CLS是CTS的一个子集,而且是最小的子集. - 张子阳 .NET框架基础知识(1) 参考资料: http://www.tracefact.net/CLR-and-Framework/DotN ...

  8. IOS开发基础知识碎片-导航

    1:IOS开发基础知识--碎片1 a:NSString与NSInteger的互换 b:Objective-c中集合里面不能存放基础类型,比如int string float等,只能把它们转化成对象才可 ...

  9. 11月10日上午ajax基础知识、用ajax做登录页面、用ajax验证用户名是否可用、ajax动态调用数据库

    1.ajax的基础知识 ajax是结合了jquery.php等几种技术延伸出来的综合运用的技术,不是新的内容.ajax也是写在<script>标签里面的. 如果使用ajax一定是要有1个处 ...

随机推荐

  1. 万维网发布服务(w3svc)已停止,除非万维网发布服务(w3svc)正在运行。

    近来遇到一个IIS服务启动问题,重启服务器PC后,网站启动的时候,提示“ 万维网发布服务(w3svc)已停止,除非万维网发布服务(w3svc)正在运行”. 解决方法: 点击"开始" ...

  2. Python学习笔记总结(四)异常处理

    1.基础 try/except/else:[else是可选的]捕捉由代码中的异常并恢复,匹配except里面的错误,并执行except中定义的代码,后继续执行程序(发生异常后,由except捕捉到异常 ...

  3. 《VIM-Adventures攻略》前言

    本文已转至http://cn.abnerchou.me/2014/03/02/bfdaadb0/ 自从有了计算机,人们就想向其灌输自己的想法. 要想对其输入,自然离不开文本编辑器. 公告:<VI ...

  4. append与remove的简单使用

    点击Add More按钮页面会自动添加一个输入框和Remove按钮,点击Remove按钮则此行元素将被移除. <!DOCTYPE html> <html lang="en& ...

  5. PHP 之mysql空字符串问题

    有一张user表如下所示:字段name不能为空. CREATE TABLE `user` ( `id` ) NOT NULL AUTO_INCREMENT, `name` ) NOT NULL, `a ...

  6. MySQL扩展

    一.使用MySQL特有的函数!        1>到年底还有几天            select datediff('2014-12-31','2014-6-21');//此函数用于计算日期 ...

  7. github恢复

    一.查看修改日志信息 1)git log:显示最近到最远的提交日志 添加参数--pretty=oneline:查看简单的日志信息. 二.进行恢复到先前版本 1)在Git中,HEAD表示当前版本,上一个 ...

  8. IIC总线协议---以存储芯片at24c64为例

    IIC总线协议 前言:年前给老师做个红外抄表系统,,现在对当中用到的一些模块总结一下. 1.只有在总线空闲时才允许启动数据传送. 2.在数据传送过程中,当时钟线为高电平时,数据线必须保持稳定状态,不允 ...

  9. 64位调试器花费的时间比预期的要长(A 64-bit debugging operation is taking longer than expected)

    在stackoverflow上找到解决方案的: http://stackoverflow.com/questions/21329899/vs2013-professional-local-64-bit ...

  10. Qt编程之在QGraphics scene中使用图片

    http://stackoverflow.com/questions/5960074/qimage-in-a-qgraphics-scene http://stackoverflow.com/ques ...