我正在尝试从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
我真的不知道该怎么办。
答案 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]", "");