Как получить конкретную строку из HashMap - PullRequest
1 голос
/ 07 июля 2019

Я пытаюсь получить конкретное значение из HashMap.

Я преобразовал JsonObject в hashMap Как это:

Map<String, Object> mapObj = new Gson().fromJson(
        jsonObject, new TypeToken<HashMap<String, Object>>() {}.getType());

Пока все отлично.

Когда я пытаюсь получить значение из mapObj как это

String strValue = (String) mapObj.get("estimate_time");

Это дает ноль

Мой Джсон

https://api.myjson.com/bins/16sub7

Я действительно не знаю, что делать.

1 Ответ

0 голосов
/ 07 июля 2019

«Сметное время» не является допустимым ключом.Он содержится внутри значения для ключа «data».

Если вы украсили ваше значение json, вы сможете более четко заметить, что значение для ключа "timate_time "равносодержится внутри значения для ключа «data».

Чтобы получить значение «timate_time », вам нужно получить доступ к значению json для ключа« data », а затем получить доступ к значению« key »timate_time "из этого.

Я никогда раньше не работал с Gson, но что-то вроде следующего должно работать (или, по крайней мере, дать вам представление о том, как подойти к проблеме)

Map<String, Object> mapObj = new Gson().fromJson(
    jsonObject, new TypeToken<HashMap<String, Object>>() {}.getType());

LinkedTreeMap<String, Object> requiredMapObj = (LinkedTreeMap<String, Object>) mapObj.get("data");

String strValue = (String) requiredMapObj.get("estimate_time");

String numberValueAlone = strValue.replaceAll("[^0-9]", "");

( Ссылка )

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...