Я пытаюсь удалить или обновить несколько полей из jsonArray, который состоит из LinkedHashMap . Я посмотрел, как обновить LinkedHashMap, и put (ключ, значение) является стандартным процессом, но при попытке получить java .lang.Integer невозможно привести к java .util.LinkedHashMap ошибка.
Мой код выглядит следующим образом:
public static JSONArray updateJsonFields(JSONArray json, LinkedHashMap fieldMap) {
JSONArray updatedJson = new JSONArray();
int sizeJson = json.size();
for(int i = 0 ; i < sizeJson ; i++) {
((LinkedHashMap) json.get(i)).forEach((key, value) -> {
if(key.equals("responseHeaders")) {
((LinkedHashMap) value).forEach((fieldKey, fieldValue ) -> {
if(fieldKey.equals("Date")){
((LinkedHashMap) fieldValue).put("Date", fieldMap.get("Date"));
} else if( fieldKey.equals("TransID") ) {
((LinkedHashMap) fieldValue).put("TransID", fieldMap.get("TransID"));
}
});
} else if (key.equals("requestTimeStamp")) {
((LinkedHashMap) value).put("requestTimeStamp", fieldMap.get("requestTimeStamp"));
} else if (key.equals("responseTime")) {
((LinkedHashMap) value).remove("responseTime");
}
});
}
return updatedJson;
}
Что также сбивает с толку, так это то, что метод remove возвращает ту же ошибку. Я не работал с LinkedHashMaps в Java до сих пор, поэтому я не уверен, что мне нужно делать. Я искал около двух дней и не могу найти ответ, который мне нужен.
Любая помощь будет признательна.
Спасибо.