前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >JSON 是什么?它能带来什么?它和 XML 比较?

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

作者头像
用户7657330
发布2020-08-14 16:09:02
发布2020-08-14 16:09:02
73600
代码可运行
举报
文章被收录于专栏:程序生涯程序生涯
运行总次数:0
代码可运行

一、JSON是什么?

有一种叫做JSON (JavaScript Object Notation) 的轻量级数据交换格式能够替代XML的工作。它就是JSON。

数据格式比较简单, 易于读写, 格式都是压缩的, 占用带宽小。 易于解析这种语言, 客户端JavaScript可以简单的通过eval()进行JSON数据的读取。 包括ActionScript, C, C#, ColdFusion,Java,JavaScript,Perl,PHP,Python,Ruby等语言服务器端语言, 便于服务器端的解析。 各语言对JSON支持的特别好,自从Ajax的流行,JSON格式传输就更流行了。

首先,它只是一个字符串,它只是一个有规则的字符串。(重点) 然后它的表达(表现)形式是键值对的。其实非常类似Java语言里的Map,Objective-C里的字典,其他语言都有对应的,我说实话其他语言我不知道!我为什么用MapString泛型,因为理论上它的键值对应该都是字符串,Why?这个问题问的好,我可以这么回答你,因为它本身就是字符串。 上面说的理论上表达方式,那么实际目前我们用到的键值对支持什么呢?可以支持String、Number、Array以及Boolean、null什么的。 它的作用是用来交互的,不一定Web项目的前后端交互也可以接口,配置文件,文件存储等等都OK。目前移动端比较火,一般的项目都会用JSON来传输。

二、它能带来什么?

简洁、简单、体积小等。 上手容易,高效。 跨语言,目前移动端Android、IOS一般项目构造都是其他语言提供接口(JSON方式),移动端读取接口的方式开发。 ….

三、它和XML对比?

可读性:看了网上的各种帖子,有说可读性相当,不过基本是说XML可读性好,我认为还凑合。可以打平手。 可扩展性:有人说,“XML天生有很好的扩展性,JSON当然也有,没有什么是XML能扩展,JSON不能的。不过 JSON在Javascript主场作战,可以存储Javascript复合对象,有着XML不可比拟的优势”。我赞同一半,我觉得这些帖子都是老帖子,XML可以灵活扩展是因为各种语言有支持的其他Jar包,类库等。但自从JSON火起来后,JSON的支持包,类库等,相信每个语言都很多。像Java就有Jackson、goson、json-lib、FastJson等等多的去了。 编码难度:XML有有DOM,SAX,STAX等解析技术,JSON也有我上面说的那些,都OK。 解码难度:同上。 解码编码效率:呵呵!解析XML有专用CPU、你造吗? 下面给一个Demo

XML Demo

代码语言:javascript
代码运行次数:0
复制
<?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

代码语言:javascript
代码运行次数:0
复制
{
    "name": "中国",
    "province": [
        {
            "name": "黑龙江",
            "citys": {
                "city": [
                    "哈尔滨",
                    "大庆"
                ]
            }
        },
        {
            "name": "广东",
            "citys": {
                "city": [
                    "广州",
                    "深圳",
                    "珠海"
                ]
            }
        },
        {
            "name": "台湾",
            "citys": {
                "city": [
                    "台北",
                    "高雄"
                ]
            }
        },
        {
            "name": "新疆",
            "citys": {
                "city": [
                    "乌鲁木齐"
                ]
            }
        }
    ]
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/05/13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、JSON是什么?
  • 二、它能带来什么?
  • 三、它和XML对比?
    • XML Demo
    • JSON Demo
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档