XML的特点是功能全面,但标签繁琐,格式复杂。在Web上使用XML现在越来越少,取而代之的是JSON这种数据结构。JSON是JavaScript Object Notation的缩写,它去除了所有JavaScript执行代码,只保留JavaScript的对象格式。一个典型的JSON如下:

    1. {
    2. "id": 1,
    3. "name": "Java核心技术",
    4. "author": {
    5. "firstName": "Abc",
    6. "lastName": "Xyz"
    7. },
    8. "isbn": "1234567",
    9. "tags": ["Java", "Network"]
    10. }

    JSON作为数据传输的格式,有几个显著的优点:

    • JSON只允许使用UTF-8编码,不存在编码问题;
    • JSON只允许使用双引号作为key,特殊字符用\转义,格式简单;
    • 浏览器内置JSON支持,如果把数据用JSON发送给浏览器,可以用JavaScript直接处理。

    因此,JSON适合表示层次结构,因为它格式简单,仅支持以下几种数据类型:

    • 键值对:{"key": value}
    • 数组:[1, 2, 3]
    • 字符串:"abc"
    • 数值(整数和浮点数):12.34
    • 布尔值:truefalse
    • 空值:null

    浏览器直接支持使用JavaScript对JSON进行读写。
    所以,开发Web应用的时候,使用JSON作为数据传输,在浏览器端非常方便。因为JSON天生适合JavaScript处理,所以,绝大多数REST API都选择JSON作为数据传输格式。