欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

2個json比對

傅智翔2年前8瀏覽0評論

JSON 是一種輕量級的數據交換格式,常用于前端和后端的數據傳輸。當我們需要比對兩個 JSON 數據是否相同的時候,可以使用一些開源的庫來實現。

比較常用的兩個庫分別是 JSONassert 和 JSONDiff,下面分別介紹一下這兩個庫的使用方法。

JSONassert

JSONassert 可以比較兩個 JSON 數據是否完全相同,如果兩個 JSON 數據不完全相同,會拋出 AssertionFailedError 異常來提示錯誤。使用該庫的方法如下:

import org.skyscreamer.jsonassert.JSONAssert;
// 第一個參數為預期的 JSON 數據,第二個參數為實際得到的 JSON 數據,
// 第三個參數為 strict 模式,設置為 true 時會比對屬性值和類型,為 false 時只比對屬性值。
JSONAssert.assertEquals(expectedJson, actualJson, true);

JSONDiff

JSONDiff 可以比較兩個 JSON 數據的差異,并以樹形結構的形式展示出來,使得我們更容易地發現兩個 JSON 數據的差異。使用該庫的方法如下:

import com.fasterxml.jackson.databind.ObjectMapper;
import com.github.wnameless.json.flattener.JsonFlattener;
import io.github.jonestimd.json.diff.JsonDiff;
// 將 JSON 數據扁平化,方便比對。
String expectedFlat = JsonFlattener.flatten(expectedJson);
String actualFlat = JsonFlattener.flatten(actualJson);
// 將扁平化后的 JSON 數據轉成 Map,方便比對。
ObjectMapper mapper = new ObjectMapper();
MapexpectedMap = mapper.readValue(expectedFlat, Map.class);
MapactualMap = mapper.readValue(actualFlat, Map.class);
// 比對兩個 Map 的差異。
JsonDiff.asJson(expectedMap, actualMap);

兩個庫的使用方法都十分簡單,開發者可以根據自己的需求選擇合適的庫來使用。