【问题标题】:Find the occurrences of a key in JSON object in Java在 Java 中查找 JSON 对象中某个键的出现
【发布时间】:2015-01-07 14:15:24
【问题描述】:

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

提前致谢。

【问题讨论】:

  • 你想用 Java 还是 Javascript 找到它?
  • 我想在 Java 中找到它。谢谢
  • 请添加代码片段以获取更多详细信息。

标签: java javascript json


【解决方案1】:

您可以使用 JSON Simple 库来解析一个 json 对象:https://code.google.com/p/json-simple/

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

【讨论】:

    【解决方案2】:

    也许......像这样:

    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 次相同的密钥(可能是您手动生成的):

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

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

    取决于库实现和 JSON 规范。

    【讨论】:

      【解决方案3】:
      {
        "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
      }
      

      【讨论】:

        猜你喜欢
        • 2021-12-05
        • 1970-01-01
        • 2021-11-13
        • 2020-01-18
        • 1970-01-01
        • 1970-01-01
        • 2020-07-22
        • 2021-12-12
        • 2014-12-26
        相关资源
        最近更新 更多