Я пишу Java-программу с парсером JSON для получения некоторых данных.Моя проблема - сравнение значений из парсера json.Это мой код:
private ArrayList<HashMap<String, String>> listInfo = new ArrayList<HashMap<String, String>>();
public ArrayList<HashMap<String, String>> info() {
//Get the data
JSONObject json = JSONfunctions.getJSONfromURL(URL);
try {
//Get the elements
HashMap<Integer, String> mapValueForCompare = new HashMap<Integer, String>();
JSONArray data = json.getJSONArray("data");
//Loop the array
for (int i = 0; i < data.length(); i++) {
HashMap<String, String> mapInfo = new HashMap<String, String>();
JSONObject e = data.getJSONObject(i);
mapInfo.put("id", e.getString("id"));
mapInfo.put("title", e.getString("title"));
mapInfo.put("value", e.getString("value"));
int t = check(mapValueForCompare, mapInfo);
if (t == 1) {
mapInfo.put("isSame?", "yes");
} else {
mapInfo.put("isSame?", "no");
}
mapValueForCompare.put(i, e.getString("value"));
listInfo.add(mapInfo);
}
} catch (JSONException e) {
Log.e("log_tag", "Error parsing data " + e.toString());
}
return listInfo;
}
private int check(HashMap<Integer, String> mapValueForCompare, HashMap<String, String> mapInfo) {
int result = -1;
for (int i = 0; i < mapValueForCompare.size() - 1; i++) {
if (mapValueForCompare.get(i) == mapInfo.get("value")) {
result = 1;
} else {
result = 0;
}
}
return result;
}
Вы видите, что я использую HashMap (mapValueForCompare), чтобы собрать все значения и сравнить каждое значение со значением нового HashMap (mapInfo).Результатом является только ответ «нет»!Почему это?Где моя ошибка?У тебя есть идея получше?Я больше ничего не могу найти.