重新认识JSON

作者: 赵客缦胡缨v吴钩霜雪明 | 来源:发表于2019-07-22 09:09 被阅读18次

1.JSON是什么?

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

数据格式比较简单, 易于读写, 格式都是压缩的, 占用带宽小,易于解析这种语言。

客户端JavaScript可以简单的通过eval()进行JSON数据的读取,包括

ActionScript, C, C#, ColdFusion,Java,JavaScript,Perl,PHP,Python,Ruby

等语言服务器端语言, 便于服务器端的解析。

各语言对JSON支持的特别好,自从Ajax的流行,JSON格式传输就更流行了。

JSON常被用作序列化。

2.对JSON的理解

如果到这里你还不明白?

JSON是什么,那么我就发大招了!

其实我在为公司面试的时候,我经常有提到,假如我不知道JSON是个什么玩意?你怎么告诉我,让我知道是个什么东西。

PS:下面都是我的个人理解,因理解因人而异,受用即可!

问了这么多人,其实结果不是我想要的,大多数的答案有这些。

它是前端和后台交互用的

它是键值对的

以上2点比较多。

还有一些乱七八糟的完全偏离了JSON。那么它应该是怎样的?

应该这么回答,个人认为!

首先,它只是一个字符串,它只是一个有规则的字符串。(重点)
然后它的表达(表现)形式是键值对的。其实非常类似Java语言里的Map,Objective-C里的字典。

它本身就是字符串。键值对支持什么呢?可以支持String、Number、Array以及Boolean、null什么的。

它的作用是用来交互的,不一定Web项目的前后端交互也可以接口,配置文件,文件存储等等都OK。目前移动端比较火,一般的项目都会用JSON来传输。

3.JSON能带来什么?

  • 简洁、简单、体积小

  • 上手容易,高效

  • 跨语言,目前移动端Android、IOS一般项目构造都是其他语言提供接口(JSON方式),移动端读取接口的方式开发

  • ….

4.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、你造吗?

5.DEMO对比

XML Demo

<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": [
                    "乌鲁木齐"
                ]
            }
        }
    ]
}

相关文章

  • 重新认识JSON

    1.JSON是什么? 有一种叫做JSON (JavaScript Object Notation)的轻量级数据交换...

  • 《认知突围——做复杂时代的明白人 》读书笔记

    作者在书中从"重新认识自己,重新认识知识,重新认识金钱,重新认识时间,重新认识关系,重新认识人生"六个方面进...

  • 重新认识目标

    早上读了小帅老师的文章,里面有提到我们要重新认识的六个方面:重新认识选择、重新认识命运、重新认识改变、重新认识耐心...

  • 15期训练营4组38号小赖第1节课后作业

    建立心智管理时间模型 一、认知突围(从四个维度:重新认识自己,重新认识金钱,重新认识时间,重新认识人生,请从这个方...

  • 第18期训练营欣欣的作业

    一、今晚作业:1.认知突围,从四个维度(重新认识自己,重新认识金钱,重新认识时间,重新认识人生),请从这个方面,阐...

  • 29号

    最近都是重新认识重新认识重新认识、有没有不是重新认识的、自我驱动力、自我约束、自我陶醉、自我安慰、自我保护。唉~~...

  • 第一周的作业,段玉荣

    1:认知突围(从四个维度:重新认识自己,重新认识金钱,重新认识时间,重新认识人生,请从这个方面阐述你应该如何做?)...

  • 20180715时间管理心智模型-复习心得

    一、认知突围(从四个维度:重新认识自己,重新认识金钱,重新认识时间,重新认识人生,请从这个方面阐述你应该如何做?)...

  • 2018-06-12时间管理心智模型--濤-作业提交

    1.认知突围(从四个维度:重新认识自己,重新认识金钱,重新认识时间,重新认识人生,请从这个方面阐述你应该如何做?)...

  • 18期3营春春时间管理心智模式作业

    1.认知突围(从四个维度:重新认识自己,重新认识金钱,重新认识时间,重新认识人生,请从这个方面阐述你应该如何做?)...

网友评论

    本文标题:重新认识JSON

    本文链接:https://www.haomeiwen.com/subject/hihjlctx.html