zoukankan      html  css  js  c++  java
  • Java学习-027-JSON 之一 -- 初识

    通常,我们在生活中使用的应用产品(无论是 Web应用还是 App 应用),又或者我们平常的信息交流,均无可避免的存在着信息交互,在信息交互的过程中就有着信息载体的存在。那么,在我们熟知的网络应用产品中,数据是以什么样的形式传递的呢?我在日常的测试开发工作中经常接触的常见的数据传递方式有 JSON、XML、文本文件 等,XML大家都比较熟悉,JSON又是什么呢?跟 XML 的区别又有什么区别呢,请看下文。

     

    一、JSON概述

    JSON,英文名称是:JavaScript Object Notation,是一种轻量级的数据交换格式,是基于 ECMAScript 的一个子集。JSON 采用完全独立于语言的文本格式,因而其能被 C、C#、Java、JavaScript、Python 等大多数的编程语言所支持,因而使 JSON 成为比较理想的数据交换语言。易于程序阅读和编写,同时也易于机器解析和生成(一定程度上可提高网络传输速率)。

     

    二、JSON基本结构

    通常 JSON 有两种基本结构:

    对象:对象在js中表示为“{}”括起来的内容,数据结构为 {key:value,key:value,...}的键值对的结构,在面向对象的语言中,key为对象的属性,value为对应的属性值,所以很容易理 解,取值方法为 对象.key 获取属性值,这个属性值的类型可以是 数字、字符串、数组、对象几种。

    数组:数组在js中是中括号“[]”括起来的内容,数据结构为 ["java","javascript","vb",...],取值方式和所有语言中一样,使用索引获取,字段值的类型可以是 数字、字符串、数组、对象几种。

    由以上两种基本结构就可组成比较复杂的 JSON 数据结构了,以满足不同的数据传输需求。

      
    三、JSON编写规则
    由 JSON 的英文全称中可以看出,其语法是 JavaScript 对象表示语法的子集,对应的语法有如下所示的规则限制:
    • 数据在键值对中
    • 键值由冒号分隔
    • 数据由逗号分隔
    • 花括号保存对象
    • 方括号保存数组

     

    四、与XML优缺点对比

    JSON与XML优缺点对比
      JSON XML
    优点 1、数据格式比较简单,易于读写,格式都是压缩的,耗费网络资源少(带宽);
    2、易解析。客户端 JS 可以简单的通过 eval() 对 JSON 数据的读取,其他语言均有对应的模块方便解析;
    3、支持多种语言,包括 C#, Java, JS, PHP, Python 等服务器端语言,便于服务器端及客户端的解析;
    4、因为JSON格式能直接为服务器端代码使用,大大简化了服务器端和客户端的代码开发量,且完成任务不变,并且易于维护。

    1、格式统一,符合标准

    2、容易与其他系统进行远程交互,数据共享比较方便

    缺点

    1、没有XML格式这么推广的深入人心和喜用广泛,没有XML那么通用性;

    2、JSON格式目前在Web Service中推广时间不长,不过随着时间的推移 JSON 或许会被广泛的应用。

    1、XML文件庞大,文件格式复杂,传输占带宽;

    2、客户端不同浏览器之间解析XML的方式不一致,需要重复编写很多代码;

    3、服务端、客户端需编写大量代码来解析XML,导致服务器端和客户端代码变得异常复杂且不易维护,同时浪费的较多的资源和时间。

     
    可读性 基本相同,一边是建议的语法,一边是规范的标签形式。相对而言,XML可读性较好些。
    可扩展性 均具备良好的扩展性
    编写难度 JSON相对于 XML 更容易编写
    解析难度 JSON更容易解析,无需考虑父子节点等问题,而 XML 解析时需要考虑父子节点的问题,解析难度稍大。
    数据大小 JSON比 XML 更小,因 XML 中包含了各种标签符号等
    数据交互 在网页编程中,JSON 与 JS 交互更加方便,更加容易解析处理,有更好的数据交互体验。
    数据描述 XML 比 JSON 有更好的描述性。
    传输速率 JSON快,因其大小较小,占用的带宽小,更易传输。
    编码方面 JSON解析比 XML 更加方便,同时也更有利于服务端和客户端的数据解析
    使用占比 XML推广的较早,占比稍大;JSON 逐渐被广大的攻城狮所接受  

     

    五、实例对比

    JSON实例如下所示:

    {
    	country: {
    		name: "中国",
    		provinces: [{
    			name: "山东",
    			citys: {
    				city: ["青岛","济南"]
    			}
    		},
    		{
    			name: "上海",
    			citys: {
    				city: ["静安","徐汇","浦东"]
    			}
    		},
    		{
    			name: "江苏",
    			citys: {
    				city: ["南京","江阴"]
    			}
    		},
    		{
    			name: "广西",
    			citys: {
    				city: ["桂林","南宁"]
    			}
    		}]
    	}
    }
    

     

    XML实例如下所示:

    <?xml version="1.0" encoding="utf-8" ?>
    <country>
      <name>中国</name>
      <province>
        <name>山东</name>
        <citys>
          <city>青岛</city>
          <city>济南</city>
        </citys>    
      </province>
      <province>
        <name>上海</name>
        <citys>
          <city>静安</city>
          <city>徐汇</city>
          <city>浦东</city>
        </citys>   
      </province>
      <province>
        <name>江苏</name>
        <citys>
           <city>南京</city>
           <city>江阴</city>
        </citys> 
      </province>
      <province>
        <name>广西</name>
        <citys>
          <city>桂林</city>
          <city>南宁</city>
        </citys>
      </province>
    </country>
    

     

    至此, Java学习-027-JSON 之一 -- 初识 顺利完结,希望此文能够给初学 Java 的您一份参考。

    最后,非常感谢亲的驻足,希望此文能对亲有所帮助。热烈欢迎亲一起探讨,共同进步。非常感谢! ^_^

     

  • 相关阅读:
    设计模式学习08:享元模式
    设计模式学习07:适配器模式
    设计模式学习06:策略模式和简单工厂模式
    XCode Debugger中的Icon符号的意义
    蒲公英——APP内测分发平台
    分享申请IDP账号的过程,包含duns申请的分享
    Dash——程序员的的好帮手:API文档浏览器+代码片段管理工具
    xScope——界面设计师的终极工具箱
    Alcatraz——Xcode插件管理工具
    苹果向开发者发布 Xcode 6.3.2 GM版 修复 Bug
  • 原文地址:https://www.cnblogs.com/fengpingfan/p/4801275.html
Copyright © 2011-2022 走看看