J'ai un JSONArray de la forme:correspondant multiple dans un JSONArray
[[{ "Country" : "IN", "count" : 10},{ "Country" : "US", "count" : 20}], [{ "Country" : "IN", "count" : 10},{ "Country" : "US", "count" : 20}], [{ "Country" : "IN", "count" : 10},{ "Country" : "US", "count" : 20}]]
Je veux comparer des champs individuels comme dans le cas ci-dessus depuis { "Country" : "IN", "count" : 10}
est égale à { "Country" : "IN", "count" : 10}
et { "Country" : "IN", "count" : 10}
et { "Country" : "US", "count" : 20}
est égal à { "Country" : "US", "count" : 20}
et { "Country" : "US", "count" : 20}
, je devrais obtenir un résultat de match.
Cependant pour un cas comme ci-dessous, je devrais obtenir un résultat sans correspondance car le count
ne correspond pas.
[[{ "Country" : "IN", "count" : 45},{ "Country" : "US", "count" : 60}],
[{ "Country" : "IN", "count" : 10},{ "Country" : "US", "count" : 20}],
[{ "Country" : "IN", "count" : 10},{ "Country" : "US", "count" : 20}]]
J'ai été capable de mettre les données dans un HashMap. Mais je suis incapable de trouver un moyen, comment comparer.
myArray
contient le JSONArray ci-dessus.
int length = myArray.getJSONArray(0).length();
Map<String, Integer> cargo = new HashMap<>();
for (int j = 0; j < myArray.length(); j++) {
for (int k = 0; k < myArray.getJSONArray(j).length(); k++) {
String country = myArray.getJSONArray(j).getJSONObject(k).getString(DataConstants.COUNTRY);
Integer count = myArray.getJSONArray(j).getJSONObject(k).getInt(DataConstants.COUNT);
cargo.put(country, count);
}
}
if (cargo.size() == length) {
System.out.println("Data Matched !!");
return true;
}
else
System.out.println("Data Not Matched !!");
return false;
Merci,
Vous voudrez convertir vos tableaux JSON en objets Java et remplacer les méthodes égales et les méthodes de hachage. – alayor
@alayor Y a-t-il un lien/code que vous pouvez pointer vers des méthodes oveeride égales et hashcode? – AYa
@Aya: Il y avait quatre mots clés évidents dans le commentaire d'alayor. Taper « Java », « override », « égal », et « hashCode » dans Google de (ou de débordement de la pile) champ de recherche aurait été à la fois plus facile et plus rapide que de nous demander de le faire pour vous . –