赞
踩
在做接口开发时常遇到获取某个接口json数据中某个节点的值,下面的工具就能实现。
例:如下json数据,要获取phone的值
{
"subject": {
"createBy": 1,
"delFlag": 0,
"departmentId": 1,
"direction": "IN",
"id": 1,
"interviewee": "床位", //受访人
"passageTime": 1578902083000,
"phone": "18538201773",
"searchScore": "89.25835",
"visitorId": 1,//访客id
},
"type": "2"
}
代码如下:
//jsonBody为要取值的son数据 “subject”为json数据中的一个key map为key的vlue值
Map<String,Object> map = (Map<String, Object>) MyUtil.getValue(jsonBody,"subject");
//得到key为phone的值
String phone = map.get("phone").toString();
创建工具类MyUtil,把如下代码放到类中,在json字符串中,根据key值找到value
public class MyUtil{ /** * 在json字符串中,根据key值找到value * * @param json 需要得到key的json字符串 * @param key 需要得到value的key * @return */ public static Object getValue(String json, String key) { Object rulsObj = null; //json转map Map<?, ?> rulsMap = jsonToMap(json); //在map中得到key对应的value if (rulsMap != null && rulsMap.size() > 0) { rulsObj = rulsMap.get(key); } return rulsObj; } /** * 将json格式转换成map对象 * * @param json * @return */ public static Map<String, Object> jsonToMap(String json) { //gson-2.6.2.jar包(com.google.code.gson:gson:2.6.2) Gson gson = null; Map<String, Object> objMap = null; if (gson != null) { Type type = new TypeToken<Map<String, Object>>() { }.getType(); objMap = gson.fromJson(json, type); } if (objMap == null) { objMap = new HashMap<String, Object>(); } return objMap; } }
大功告成,会继续分享。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。