百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 文章教程 > 正文

走进Java接口测试之理解JSON和XML基础

xsobi 2025-01-08 18:16 1 浏览

一、引言

现如今 Restful API 越来越流行,而 JSON 和 XML 基本上是两种主流格式用来交换数据,JSON和 XML 都在 Web上有完善的开放标准(RFC 7159,RFC 4825),本文将带着大家来了解下这个两种数据格式。


二、JSON

1、JSON 简介

JSON 是一种用于在多个应用程序之间共享数据的通信格式。JSON代表 JavaScript Object Notation。它基本上是键值对的集合。

官网:http://www.json.org/

在线校验JSON结构的网站:https://jsonformatter.curiousconcept.com/

2、JSON 数据结构

JSON 有两种数据结构:

  • Map,也称为对象;{....}
  • Array;[......]

也就是说所有的 JSON 对象都是要以这些形式表示;

2.1、Map

简单的说就是 Java 中的 Map,名称-值对的形式给出,名称和值之间用 “:” 隔开,两个Map之间用“,”隔开,一般表示形式如下:

{'key1':'value1','key2':'value2'}

下面的 Object 有 3 个键值对

{ "firstName" : "Vijay", "lastName" : "Gupta", "gender" : "Male" }

Map 是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。

2.2、 Array

就是普通意义上的数组,一般形式如下:

['arr1','arr2','arr3'];

下面的数组有 3 个JSON 对象,每个对象有 3 个键值对

[
{"name" : "Potato","stock" : "10", "unit" : "kg"},
{"name" : "Tomato","stock" : "32", "unit" : "kg"},
{"name" : "Onion","stock" : "27", "unit" : "kg"}
]

数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔。

图中的值(value)可以是双引号括起来的字符串(string)、数值(number)、true、false、 null、对象(object)或者数组(array)。这些结构可以嵌套。

字符串(string)是由双引号包围的任意数量 Unicode 字符的集合,使用反斜线转义。一个字符(character)即一个单独的字符串(character string)。

字符串(string)与C或者Java的字符串非常相似。

数值(number)也与C或者Java的数值非常相似。除去未曾使用的八进制与十六进制格式。除去一些编码细节。

2.3、嵌套Map

JSON对象也可以嵌套:

{
"id": "0001", "type": "donut", "name": "Cake",
"image":
{ "url": "images/0001.jpg", "width": 200, "height": 200},
"thumbnail":
{"url": "images/thumbnails/0001.jpg", "width": 32, "height": 32}
}

2.4、小结

  • JSON 的数据结构只有两种
  • 可以嵌套表示,比如 Array 中可以嵌套 Object 等
  • Object 是以{}表示,Array是以 [ ] 表示

三、XML

1、XML简介

XML 是一种标记语言,也是一种用于在多个应用程序之间共享数据的通信格式,而不是 HTML,它更侧重于数据表示。

XML 被设计用来描述数据并关注数据是什么

XML 标签不需要预先定义。在 XML 中,标签和文档结构由其作者定义。通常,XML标签是自解释的,并描述它们之间的内容。

例如:

<section>
 <title>BOOK</title>
 <signing>
  <author name="author-1"/>
  <book title="book1" price="$11"/>
 </signing>
 <signing>
  <author name="author-2"/>
  <book title="book2" price="$22"/>
 </signing>
</section>

1.1、XML语法规则

  • 必须包含一个根元素,它是所有其他元素的父元素
  • 所有 XML 元素都必须具有结束标记
  • XML 标签区分大小写
  • XML 元素必须正确嵌套
  • 必须引用 XML 属性值

在线校验XML结构的网站:https://codebeautify.org/xmlvalidator

1.2、XML中的实体引用

某些字符不能用作 XML 标记内的内容。因此,我们用特定文本(称为实体引用)替换这些字符,以便从字面上解析这些字符

在 XML 中有 5 个预定义的实体引用:

四、JSON与XML互转示例

在线格式互转: http://www.utilities-online.info/xmltojson/#.XFE-pegzaUk

1、简单XML

XML格式:

<person>
 <name>zuozewei</name>
 <age>20</age>
</person>

JSON格式:

{
 "name":"zuozewei",
 "age":20
}

2、复杂XML

XML格式:

<section>
 <title>BOOK</title>
 <signing>
  <author name="author-1"/>
  <book title="book1" price="$11"/>
 </signing>
 <signing>
  <author name="author-2"/>
  <book title="book2" price="$22"/>
 </signing>
</section>

JSON格式:

{
  "section": {
    "title": "BOOK",
    "signing": [
      {
        "author": { "-name": "author-1" },
        "book": {
          "-title": "book1",
          "-price": "$11"
        }
      },
      {
        "author": { "-name": "author-2" },
        "book": {
          "-title": "book2",
          "-price": "$22"
        }
      }
    ]
  }
}

五、XML VS JSON



六、总结

XML是一种数据格式,同时它也是一种语言。它具有许多强大的功能,使其不仅仅是简单的数据交换数据格式。例如 XPath,属性和命名空间,XML 模式和 XSLT 等。所有这些功能都是 XML 流行的主要原因。

JSON 并不是为了拥有这样的功能而设计的,即使它们中的一些现在正试图在 JSON 中找到它们的位置,例如 JSONPath。

简而言之,XML 的目的是文档标记。每当文档标记和元数据是数据的重要组成部分并且不能被删除时,总是更喜欢使用 XML。

JSON 的目的是结构化数据交换。它通过直接表示对象,数组,数字,字符串和布尔值来实现此目的。如果不要求元数据和文档标记,始终使用 JSON。

参考资料:

  • [1] https://www.json.org/json-zh.html
  • [2] https://blog.csdn.net/xiazdong/article/details/7059573

相关推荐

全网最详细解决Windows下Mysql数据库安装后忘记初始root 密码方法

一、准备重置root的初始化密码Win+R键启动命令输入窗口;输入cmd打开命令执行窗口;##界面如下##输入命令:netstopmysqld#此操作会停止当前运行的...

Spring Boot数据库密码加密的配置方法

前言由于系统安全的考虑,配置文件中不能出现明文密码的问题,本文就给大家详细介绍下springboot配置数据库密码加密的方法,下面话不多说了,来一起看看详细的介绍吧...

Mysql 8.4数据库安装、新建用户和数据库、表单

1、下载MySQL数据库yuminstall-ywgetperlnet-toolslibtirpc#安装wget和perl、net-tools、libtirpcwgethtt...

mysql5.7安装教程

首先下载mysql的rpm包wgethttps://mirrors.ustc.edu.cn/mysql-ftp/Downloads/MySQL-5.7/mysql-community-client...

MySQL管理授权和数据库的备份和还原详解

一般管理用户和授权由DBA去执行,DBA为数据库管理员一、管理用户1.添加用户...

数据库迁移有什么技巧?|分享强大的database迁移和同步工具

概述DBConvertStudio是一款强大的跨数据库迁移和同步软件,可在不同数据库格式之间转换数据库结构和数据。它将成熟、稳定、久经考验的DBConvert和DBSync核心与改进的现代...

Mysql解压版安装过程

Mysql是目前软件开发中使用最多的关系型数据库,具体安装步骤如下:第一步:Mysql官网下载最新版(mysql解压版(mysql-5.7.17-winx64)),Mysql官方下载地址为:https...

MySQL5.7升级到8.0过程详解

前言:不知不觉,MySQL8.0已经有好多个GA小版本了。目前互联网上也有很多关于MySQL8.0的内容了,MySQL8.0版本基本已到稳定期,相信很多小伙伴已经在接触8.0了。本篇文章主要介绍从5....

10种常见的MySQL错误,你可中招?

【51CTO.com快译】如果未能对MySQL8进行恰当的配置,您非但可能遇到无法顺利访问、或调用MySQL的窘境,而且还可能给真实的应用生产环境带来巨大的影响。本文列举了十种MySQL...

忘记MySQL密码怎么办?一招教你搞定

在安装完MySQL或者是在使用MySQL时,最尴尬的就是忘记密码了,墨菲定律也告诉我们,如果一件事有可能出错,那么它一定会出错。那如果我们不小心忘记了MySQL的密码,该如何处理呢?别着急...

Windows 安装解压版本的 MySql

1、下载解压版本的MySql到https://downloads.mysql.com/archives/community/网站,根据自己需要安装的版本进行选择下载,这里下载不要选择MSII...

爆破SSH/MySQL账户竟如此简单

友情提示:初入安全,小白一个,本文重在学习与经验分享!背景使用Kali自带的MSF工具对SSH的账号密码进行爆破。1.实验环境本次实验通过MSF,可直接对SSH的账号密码进行爆破。KaliIP:1...

Mysql8忘记密码/重置密码

Mysql8忘记密码/重置密码UBUNTU下Mysql8忘记密码/重置密码步骤如下:先说下大概步骤:修改配置文件,使得用空密码可以进入mysql。然后置当前root用户为空密码。再次修改配置文件,不能...

wamp查看MySQL密码 MySQL console输入密码闪退 重置mysql密码

wampserver的MySQL数据库用户名为root初始密码为空,但是部分同学通过MySQLconsole访问数据库输入密码的时候出现窗口闪退,常见的问题是原来有改过密码或者你的配置文件要求密码不...

Mysql数据库操作指引(六)——账号密码及权限管理

简介:在MySQL数据库中,为了保证数据的安全性,数据管理员需要根据需要创建账户,并为每个账户赋予不同的权限,以满足不同用户的需求。...