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. PHP学习系列(1)——字符串处理函数(1)

    从09年开始使用JAVA到现在差不多5年多了,然后由于即将要去的公司(研究僧终于要毕业了!)是使用PHP,Python作为后台开发语言的,所以要开始一段双P的学习旅程.用过PHP的都说这是很简单的一门 ...

  2. 棋盘上的距离 - Grids1657

    棋盘上的距离 问题描述: 写一个程序,给定起始位置和目标位置,计算王.后.车.象从起始位置走到目标位置所需的最少步数. 王:横.直.斜都可以走,但每步限走一格. 后:横.直.斜都可以走,每步格数不受限 ...

  3. IIS自定义404错误页显示“系统找不到指定的文件”解决方法

    在IIS站点属性里面设置了自定义的404错误页面为一个文件之后,有时一直不生效,总是提示这样一句话:“系统找不到指定的文件”. 其实这种错误也只是在某些网站程序中出现,其实解决办法很简单.这是由于II ...

  4. [算法]分治算法(Divide and Conquer)

    转载请注明:http://www.cnblogs.com/StartoverX/p/4575744.html 分治算法 在计算机科学中,分治法是建基于多项分支递归的一种很重要的算法范式.字面上的解释是 ...

  5. Java虚拟机--虚拟机编译器

    void sspin() { short i; for (i = 0; i < 100; i++) { ; // Loop body is empty }} Method void sspin( ...

  6. android-support-v7-appcompat的配置使用

    直接将android-support-v7-appcompat.jar包拷贝到项目的libs/下面是不能使用的,具体做法官方文档给出了详细说明: (开发环境是ADT) Using Eclipse Cr ...

  7. Java日志最佳实践

    http://www.ibm.com/developerworks/cn/java/j-lo-practicelog/

  8. 解决MVC项目中,静态html 未找到时候,404的跳转

    using System; using System.Collections.Generic; using System.Globalization; using System.Linq; using ...

  9. Manage Spring Boot Logs with Elasticsearch, Logstash and Kibana

    下载地址:https://www.elastic.co/downloads When time comes to deploy a new project, one often overlooked ...

  10. c语言指向结构体数组的指针

    #include <stdio.h> #include <stdlib.h> struct dangdang { ]; ]; ]; int num; int bugnum; ] ...