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. C语言初学 转义字符举例

    #include<stdio.h> main() { printf("\101 \x42 C\n"); printf("I say:\"How ar ...

  2. Lintcode--005(最长公共子序列)

    Given two strings, find the longest common subsequence (LCS).     最长公共子序列 Your code should return th ...

  3. 用EF DataBase First做一个简单的MVC3报名页面

    使用EF DataBase First做一个简单的MVC3报名网站 ORM(Object Relational Mapping)是面向对象语言中的一种数据访问技术,在ASP.NET中,可以通过ADO. ...

  4. activiti 5.17 流程图中文乱码问题

    1. 流程图中任务中的中文乱码显示问题.   解决方法:设置processEngineConfiguration中的两个字体属性,例如: <bean id="processEngine ...

  5. QT树莓派交叉编译环开发环境搭建(附多个exe工具下载链接)

    前两天入手了一块2.8’的tft液晶显示屏,于是和树莓派连了一发,成功将命令行显示在了这块小的可怜的屏幕上之后,觉得这屏幕就显示个黑白内容太浪费了,于是考虑开发一个”脸”(图形用户界面,GUI).首先 ...

  6. 除了修改WEBCONFIG会导致WEB服务重启外,还有其他的什么操作会导致重启?

    1.修改WEBCONFIG文件 2.BIN文件夹下,添加.删除.覆盖文件 3.IIS应用程序池回收   参考文章:http://blog.csdn.net/hb_gx/archive/2007/05/ ...

  7. java对象在hibernate持久层的状态

    站在持久化层的角度,一个java对象在它的生命周期中,可处于以下4个状态之一: 临时状态(transient):刚刚用new语句创建,还没有被持久化,并且不处于Session的缓存中. 持久化状态(p ...

  8. Display number of replies in disscussion board

    how to display number of replies in disscussion board I have a require about display the replies' nu ...

  9. 禁用menu键

    发现很多应用中基本不再使用menu键来显示菜单了,而在android studio中创建一个activity时,默认使用了actionBar,就是在右上角会显示三个点的内容,点击会出现Settings ...

  10. 批量SSH操作工具---OmniTTY安装

    安装rote # pwd /tmp/rote-0.2.8 # ./configure # make # make install ...... mkdir -p /usr/local/include/ ...