在 Java 中查找 JSON 对象中出现的键

Find the occurrences of a key in JSON object in Java

本文关键字:JSON Java 查找 对象      更新时间:2023-09-26

我想在JSON中找到一个重复超过一定次数的键。 根据结果,我必须将一些其他键/值对添加到另一个 JSON 对象。有什么方法可以做到这一点吗?

提前谢谢。

您可以使用

JSON Simple 库来解析 json 对象: https://code.google.com/p/json-simple/

之后,您可以简单地迭代对象并计算它们的出现次数。

也许...像这样:

public int countOccurrenceOfKey(final String jsonString, final String key) {
    int occurrenceCounter = 0;
    String[] jsonParts = jsonString.split(","); // maybe another splitter if comma appears within values
    for(int i = 0; i < jsonParts.length; i=i+2) { // step to every second index so you only check the keys. start with i = 1 to check only values
        String part = jsonParts[i];
        if(part.contains(key) {
            occurrenceCounter++;
        }
    }
    return occurrenceCounter;
}

为什么使用 JSON 库可能会产生问题...如果您的 JSON 字符串包含同一密钥超过 1 次(可能是您手动生成的):

一个。JSON 转换器可能会引发异常并中止创建对象。

二.库只能采用键的第一次或最后一次出现,因此同一键的所有其他值都可能丢失。

取决于库实现和 JSON 规范。

{
  "responseCode": 200,
  "responseMessage": "COMPLETE",
  "responseData": "95W_RTXszAuuwsLxp8pA56UJQhMfNSVRQ-6OWd_f5-4tvBHp9WI4UgPBfop2AWPBY7xCI0QQcb2QwKuCRhSNdzbGOHlNL_Oectcb4xeUV_-cN8mqPo5iVyqXn_QtOtpn9GxlocFyLmXsjOKQgd5W_HsrmIwwldEwKLlcAzDTy9MIVSiZ3O97YXAzVZleV_yM0V4IqEd68wK3xGamCf05d_e4W-pnc56y3MSXRpu9op3Km0IdQAXj6gqeYCXe-AoZhj_OSP4pHpRJipixFpQGxWsSK2fhvZmdoNGxQRKtZGBzgJ9blCRFmNteio9_GbhOMXL6ySnSRbtSZ_RfBsjMu2m1MKWb0YOwQyOrIjKpQ3KOnXNCc0j54nF24YRmdFMZXbPktzrU90Y3HpzuX1xAZM0oAoUOm2xiJii1CJmH9YCOq3vR_eFneBFXFrOVCz29YKOkE4hlRHLlYxwgmWh91BFney0QIF9f9lyjHLTN958murr8dm6cS4BHSqWzeCrS86QuU4j7Zpgz6_jZUP-jK9Damjph2ZYJsIw5YHG_1dXRqse1RwbPYzP5xjADqgDVZm4IJfOwSiaYsuXtmm0hBj9fCj4DTVjVptnoYcv8Z649TquOYgbs-58st_bycROo9i1erwLz_nDdjIlQKPfz64a5UA",
  "responseVersion": 3
}