欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

目錄

柚子快報(bào)激活碼778899分享:比較兩個(gè)JSON的不同

柚子快報(bào)激活碼778899分享:比較兩個(gè)JSON的不同

http://yzkb.51969.com/

本例子使用Jackson庫(kù)來(lái)解析JSON字符串,并逐個(gè)比較JSON節(jié)點(diǎn),包括對(duì)象、數(shù)組和值的差異。

主要功能包括:

ObjectMapper對(duì)象,用于將JSON字符串轉(zhuǎn)換為JsonNode對(duì)象。 compareJson 方法接受兩個(gè)JSON字符串,并將它們轉(zhuǎn)換為JsonNode對(duì)象,然后調(diào)用 compareNodes 方法來(lái)逐個(gè)比較節(jié)點(diǎn)。 compareNodes 方法是遞歸的,它會(huì)處理對(duì)象、數(shù)組和值的差異。如果兩個(gè)節(jié)點(diǎn)相同,它會(huì)直接返回。如果節(jié)點(diǎn)是對(duì)象,它會(huì)比較它們的字段,如果一個(gè)字段在一個(gè)JSON中有而在另一個(gè)中沒有,它會(huì)報(bào)告缺失字段。如果節(jié)點(diǎn)是數(shù)組,它會(huì)比較它們的元素,如果數(shù)組長(zhǎng)度不同,它會(huì)報(bào)告長(zhǎng)度不同。如果節(jié)點(diǎn)是值,它會(huì)比較它們的內(nèi)容,如果不同,它會(huì)報(bào)告值不同。

compareNodes 方法用于測(cè)試兩個(gè)JSON字符串是否相同,以及它們之間的差異。

示例代碼:

@Test

void text() {

String json1 = "{\"name\": \"小明\", \"age\": 30}";

String json2 = "{\"name\": \"大紅\", \"age\": 30}";

try {

compareJson(json1, json2);

} catch (IOException e) {

e.printStackTrace();

}

}

public void compareJson(String json1, String json2) throws IOException {

ObjectMapper objectMapper = new ObjectMapper();

JsonNode tree1 = objectMapper.readTree(json1);

JsonNode tree2 = objectMapper.readTree(json2);

compareNodes(tree1, tree2);

}

private void compareNodes(JsonNode node1, JsonNode node2) {

if (node1.equals(node2)) {

return;

}

if (node1.isObject() && node2.isObject()) {

node1.fieldNames().forEachRemaining(fieldName -> {

if (!node2.has(fieldName)) {

System.out.println("字符串 '" + fieldName + "' 在第二個(gè)JSON中丟失.");

} else {

JsonNode childNode1 = node1.get(fieldName);

JsonNode childNode2 = node2.get(fieldName);

compareNodes(childNode1, childNode2);

}

});

node2.fieldNames().forEachRemaining(fieldName -> {

if (!node1.has(fieldName)) {

System.out.println("字符串 '" + fieldName + "' 在第二個(gè)JSON中丟失.");

}

});

} else if (node1.isArray() && node2.isArray()) {

int size1 = node1.size();

int size2 = node2.size();

if (size1 != size2) {

System.out.println("數(shù)組大小不匹配: " + size1 + " 在第一個(gè)JSON中 and " + size2 + " 在第二個(gè)JSON中.");

}

int minSize = Math.min(size1, size2);

for (int i = 0; i < minSize; i++) {

compareNodes(node1.get(i), node2.get(i));

}

} else {

System.out.println("值不匹配: " + node1 + " 在第一個(gè)JSON中 and " + node2 + " 在第二個(gè)JSON中.");

}

}

柚子快報(bào)激活碼778899分享:比較兩個(gè)JSON的不同

http://yzkb.51969.com/

相關(guān)文章

評(píng)論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。

轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/17833357.html

發(fā)布評(píng)論

您暫未設(shè)置收款碼

請(qǐng)?jiān)谥黝}配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪問

文章目錄