JSON是甚么?它能带来甚么?它和XML比较?

soゝso 2016-08-22 18:46:31 13465

一、JSON是甚么?

有一种叫做JSON (JavaScript Object Notation) 的轻量级数据交换格局可以或许替换XML的任务。它就是JSON。

  1. 数据格局比较简单, 易于读写, 格局都是紧缩的, 占用带宽小。
  2. 易于解析这类说话, 客户端JavaScript可以简单的经过过程eval()停止JSON数据的读取。
  3. 包含ActionScriptC C#ColdFusionJavaJavaScriptPerlPHPPythonRuby等说话办事器端说话, 便于办事器真个解析。
  4. 各说话对JSON支撑的特别好,自从Ajax的风行,JSON格局传输就更风行了。

2、假设到这里你还不明白?JSON是甚么,那么我就发大年夜招了!

其实我在为公司面试的时辰,我常常有提到,假设我不知道JSON是个甚么玩意?你怎样告诉我,让我知道是个甚么器械。(下面都是我的小我懂得,因懂得因人而异,受用便可!)

问了这么多人,其实成果不是我想要的,大年夜多半的答案有这些。

  1. 它是前端和后台交互用的。
  2. 它是键值对的。
  3. 以上2点比较多。还有一些混乱无章的完全偏离了JSON。

那么它应当是如何的?应当这么答复,小我认为!

  1. 起首,它只是一个字符串,它只是一个有规矩的字符串。(重点)
  2. 然后它的表达(表示)情势是键值对的。其实异常类似Java说话里的MapObjective-C里的字典,其他说话都有对应的,我说实话其他说话我不知道!我为甚么用MapString泛型,由于实际上它的键值对应当都是字符串,Why?这个成绩问的好,我可以这么答复你,由于它本身就是字符串。
  3. 下面说的实际上表达方法,那么实际今朝我们用到的键值对支撑甚么呢?可以支撑String、Number、Array和Boolean、null甚么的。
  4. 它的感化是用来交互的,不用定Web项目标前后端交互也能够接口,设备文件,文件存储等等都OK。今朝移动端比较火,普通的项目都邑用JSON来传输。

3、它能带来甚么?

  1. 简洁、简单、体积小等。
  2. 上手重易,高效。
  3. 跨说话,今朝移动端AndroidIOS普通项目构造都是其他说话供给接口(JSON方法),移动端读取接口的方法开辟。
  4. ....

四、它和XML比较?

  1. 可读性:看了网上的各类帖子,有说可读性相当,不过根本是说XML可读性好,我认为还对付。可以打平局。
  2. 可扩大性:有人说,“XML生成有很好的扩大性,JSON固然也有,没有甚么是XML能扩大,JSON不克不及的。不过 JSON在Javascript主场作战,可以存储Javascript复合对象,有着XML弗成比较的优势”。我赞成一半,我认为这些帖子都是老帖子,XML可以灵活扩大是由于各类说话有支撑的其他Jar包,类库等。但自从JSON火起来后,JSON的支撑包,类库等,信赖每个说话都很多。像Java就有Jacksongosonjson-libFastJson等等多的去了。
  3. 编码难度:XML有有DOMSAXSTAX等解析技巧,JSON也有我下面说的那些,都OK。
  4. 解码难度:同上。
  5. 解码编码效力:呵呵!解析XML有公用CPU、你造吗?

下面给一个Demo

XML Demo

<?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>
        </citys>
    </province>
</country>

JSON Demo

{
    "name": "中国",
    "province": [
        {
            "name": "黑龙江",
            "citys": {
                "city": [
                    "哈尔滨",
                    "大年夜庆"
                ]
            }
        },
        {
            "name": "广东",
            "citys": {
                "city": [
                    "广州",
                    "深圳",
                    "珠海"
                ]
            }
        },
        {
            "name": "台湾",
            "citys": {
                "city": [
                    "台北",
                    "高雄"
                ]
            }
        },
        {
            "name": "新疆",
            "citys": {
                "city": [
                    "乌鲁木齐"
                ]
            }
        }
    ]
}

总结

当项目没有你接办的时辰,没有强行用XML的情况下,你就用JSON,没有其他额外强行规定的情况下,你就用JSON

自己是在进修Elasticsearch的时辰开端强度的接触JSON,可以这么给你描述,假设Elasticsearch前往的是一个XML,估计你要哭,Elasticsearch也要哭,这么和你比较你懂了吗。

本文是由soso撰写,来自SOJSON在线对象,转载请注明出处。http://exergyanc.com/blog/1.html。


版权所属:SO JSON在线解析

原文地址:http://exergyanc.com/blog/1.html

转载时必须以链接情势注明原始出处及本声明。

本文主题:

假设本文对你有赞助,那么请你赞助我,让我更有豪情的写下去,赞助更多的人。

关于作者
一个低调而闷骚的汉子。
相干文章
对Redis的懂得,Redis是甚么,RedisMemcache谁快?
Shiro教程(一)Shiro 是甚么?Shiro的简单简介。
甚么undefined、NaNInfinity可以被赋值,而null弗成以?
Description的感化,Description对SEO有甚么影响
甚么是Referer?Referer的感化?空Referer是怎回事?
中国人还信赖甚么甚么都不信赖了!
甚么很多第三方接口,都改成了基于http,直接传递json数据的方法来代替webservice?
我为甚么要选择RabbitMQ ,RabbitMQ简介,各类MQ选型比较
网站若何设置404页面、500等缺点页面,有甚么马脚?怎预防?
公道管理、进步Javascript的性能
最新文章
应用七牛云存储完成图片API,主动删除图片筹划合集 978
神速ICP立案经历分享,ICP立案居然一天就经过过程了 2120
百度加强推送URL链接,百度SEO强行推送链接JavaScript代码案例讲解。 2838
SOJSON 拓展办事器被DDos进击了一早晨,是若何处理的? 3152
湖南地区立案“新增网站需提交组网筹划或解释解释”,关于立案做简单论述 3216
企查查你是个甚么企业,骗子的帮凶,欺骗的集中营,经过过程企查查骚扰企业德律风赓续,为所欲为的企查查 9471
Java爬取百度云不雅测对网站的检测数据,获得子域名及域名的安然信息 2503
【2020年】百度搜刮词获得,获得百度搜刮的关键词【真实有效】 6794
Nodejs情况装置,Nodejs情况装置一篇就够了 1769
iOS版淘宝翻开提示“您应用的法式榜样是内测版本,将于2020-03-28到期,到期将没法应用,请尽快下载最新版本” 2480
最热文章
苹果电脑Mac怎样恢复出厂体系?苹果体系怎样重装体系? 430171
我为甚么要选择RabbitMQ ,RabbitMQ简介,各类MQ选型比较 416853
收费气象API,全国气象 JSON API接口,可以获得五天的气象预告 349924
最新MyEclipse8.5注册码,有效期到2020年 (曾经更新) 308929
收费气象API,气象JSON API,不限次数获得十五天的气象预告 285609
Elasticsearch教程(四) elasticsearch head 插件装置和应用 220041
Jackson 时间格局化,时间注解 @JsonFormat 用法、时差成绩解释 174970
谈谈斐讯路由器劫持,你用斐讯路由器,你须要知道的任务 135860
Elasticsearch教程(一),全程直播(小白级别) 118925
Elasticsearch教程(五) elasticsearch Mapping的创建 98610

骚码参加我们 / 千人QQ群:259217951

入群须要5元为的是没有渣滓告白,假设没有QQ钱包,可以加群主拉进。

二维码生成 来自 >> 二维码生成器

付出扫码

一切赞助/开支都讲地下通细,用于网站保护:赞助名单检查

检查我的收藏

正在加载... ...