zoukankan      html  css  js  c++  java
  • JSON详解

    1、什么是JSON

      JSON是一种基于文本的数据交换方式,或者叫做数据描述格式,你是否该选用他首先肯定要关注它所拥有的优点。

    2、JSON的优点:

      1、基于纯文本,跨平台传递极其简单;

      2、Javascript原生支持,后台语言几乎全部支持;

      3、轻量级数据格式,占用字符数量极少,特别适合互联网传递;

      4、可读性较强,虽然比不上XML那么一目了然,但在合理的依次缩进之后还是很容易识别的;

      5、容易编写和解析,当然前提是你要知道数据结构;

      JSON的缺点当然也有,但在作者看来实在是无关紧要的东西,所以不再单独说明。

    3、JSON的格式或者叫规则:

      JSON能够以非常简单的方式来描述数据结构,XML能做的它都能做,因此在跨平台方面两者完全不分伯仲。

      1、JSON只有两种数据类型描述符,大括号{}和方括号[],其余英文冒号:是映射符,英文逗号,是分隔符,英文双引号""是定义符。

      2、大括号{}用来描述一组“不同类型的无序键值对集合”(每个键值对可以理解为OOP的属性描述),方括号[]用来描述一组“相同类型的有序数据集合”(可对应OOP的数组)。

      3、上述两种集合中若有多个子项,则通过英文逗号,进行分隔。

      4、键值对以英文冒号:进行分隔,并且建议键名都加上英文双引号”",以便于不同语言的解析。

      5、JSON内部常用数据类型无非就是字符串、数字、布尔、日期、null 这么几个,字符串必须用双引号引起来,其余的都不用,日期类型比较特殊,这里就不展开讲述了,只是建议如果客户端没有按日期排序功能需求的话,那么把日期 时间直接作为字符串传递就好,可以省去很多麻烦。

    4、JSON实例:

    // 描述一个人 
    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;

    文章来源:http://kb.cnblogs.com/page/139725/

  • 相关阅读:
    ElasticSearch大数据分布式弹性搜索引擎使用—从0到1
    使用Fiddler搭建手机调试环境(我做得项目是调试微信的公众号)
    Ajax的三种实现及JSON解析
    jquery ajax调用返回json格式数据处理
    jsp页面格式化数字或时间
    java组装json和提取一个json的例子
    span的onclick事件
    Android Studio创建库项目及引用
    xmlns:android="http://schemas.android.com/apk/res/android的作用是
    Android中attrs.xml文件的使用详解
  • 原文地址:https://www.cnblogs.com/lvmylife/p/5295503.html
Copyright © 2011-2022 走看看