如何从HashMap获取特定的字符串

时间:2019-07-07 20:12:17

标签: java android gson

我正在尝试从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 :(得分:0)

“ estimate_time”不是有效的密钥。它包含在键“数据”的值内。

如果您beautified的json值,您将能够更清楚地注意到,键“ estimate_time”的值包含在键“ data”的值内。

要获取“ estimated_time”的值,您需要访问键“ data”的json值,然后从中访问键“ estimated_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]", "");

Reference