JSON语法及JSON定义规范化

一、导语

JSON(JavaScript Object Notation, JS对象标记) 是一种轻量级的数据交换格式。它是基于 ECMAScript 的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。

二、版本

编号 修改日期 版本号 修改人 修改说明
1 2017.09.24 1.0 ZZ 初稿

二、JSON 语法规则

在 JS 语言中,一切都是对象。因此,任何支持的类型都可以通过 JSON 来表示,例如字符串、数字、对象、数组等。但是对象和数组是比较特殊且常用的两种类型:

  • 对象表示为键值对
  • 数据由逗号分隔
  • 花括号保存对象
  • 方括号保存数组

JSON 是 JS 对象的字符串表示法,它使用文本表示一个 JS 对象的信息,本质是一个字符串。JSON 和 JS 对象可以互转。

  • JS 对象 --> JSON 字符串,使用 JSON.stringify() 方法
var json = JSON.stringify({a: 'Hello', b: 'World'});
==> json = '{"a": "Hello", "b": "World"}'
  • JSON 字符串 --> JS 对象,使用 JSON.parse() 方法
var obj = JSON.parse('{"a": "Hello", "b": "World"}');
==> obj = {a: 'Hello', b: 'World'}

三、和XML的比较

3.1、实例比较

  • 用XML表示中国部分省市数据如下:
<?xml version="1.0" encoding="utf-8"?>
<country>
    <name>中国</name>
    <province>
        <name>黑龙江</name>
        <cities>
            <city>哈尔滨</city>
            <city>大庆</city>
        </cities>
    </province>
    <province>
        <name>广东</name>
        <cities>
            <city>广州</city>
            <city>深圳</city>
            <city>珠海</city>
        </cities>
    </province>
    <province>
        <name>台湾</name>
        <cities>
            <city>台北</city>
            <city>高雄</city>
        </cities>
    </province>
    <province>
        <name>新疆</name>
        <cities>
            <city>乌鲁木齐</city>
        </cities>
    </province>
</country>
  • 用JSON表示如下:
{
    "name": "中国",
    "province": [
        {
            "name": "黑龙江",
            "cities": {
                "city": [
                    "哈尔滨",
                    "大庆"
                ]
            }
        },
        {
            "name": "广东",
            "cities": {
                "city": [
                    "广州",
                    "深圳",
                    "珠海"
                ]
            }
        },
        {
            "name": "台湾",
            "cities": {
                "city": [
                    "台北",
                    "高雄"
                ]
            }
        },
        {
            "name": "新疆",
            "cities": {
                "city": [
                    "乌鲁木齐"
                ]
            }
        }
    ]
}

可以看到,JSON 简单的语法格式和清晰的层次结构明显要比 XML 容易阅读,并且在数据交换方面,由于 JSON 所使用的字符要比 XML 少得多,可以大大得节约传输数据所占用得带宽。

四、标准JSON格式定义

虽然在JSON并没有特殊的格式要求,但是在实践过程中,JSON有比较认可的格式规范:

  • JSON格式的定义一般遵循如下规范:
{
    "status":			// 接口访问成功或者失败的状态码
    "message":          // 接口访问错误返回的错误提示,访问成功返回空字符
    "data":{			// 服务端实际返回的数据
    }
}
  • 请求接口失败的例子
{
    "status": "1",
    "message": "您尚未登录,请登录后继续操作"
}
  • 请求接口成功的例子
{
    "status": "0",
    "message": "",
    "data": {
        "userId": "1",
        "username": "zhangsan",
        "worklist": [
            {
                "workId": "1",
                "workname": "完成登陆界面设计"
            },
            {
                "workId": "2",
                "workname": "完成用户中心功能编码"
            }
        ]
    }
}

五、JSON 工具

六、参考资料

posted @ 2022-04-28 15:10  且听风吟_z  阅读(67)  评论(0编辑  收藏  举报