我想在JSON中找到重复超过一定次数的密钥。根据结果,我必须将一些其他键/值对添加到另一个JSON对象。有什么方法可以实现这个目标吗?
先谢谢。
答案 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
}