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

时间:2015-01-07 14:15:24

标签: java javascript json

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

先谢谢。

3 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

也许......这样的事情:

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转换器可以引发异常并中止创建对象。

B中。该库只能获取密钥的第一个或最后一个外观,因此同一密钥的所有其他值都可能丢失。

取决于库实现和JSON规范。

答案 2 :(得分:-1)

{
  "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
}