大家好,又见面了,我是你们的朋友全栈君。
Object类通过转为JsonObject或Map获取属性值
- 简介:
在项目使用中,我们经常会遇到object类,如何快速的获取其属性值?在此,不通过反射机制获取,而是将其转为JsonObject类或者Map,获取其对应属性名的属性值。
- Object类
//object使用情景一:
//object类值形式为:{“name”:“value”,“name1”:“value1”},json格式
Object o = redisTemplate.opsForHash().get(vehicleMessage, engineCode);
//object使用情景二:
//object类值形式为:{name=value,name1=value1},map格式
Object o = json.get(“MDT_EN_DA_GB6_TYPE”);
- Object类->JsonObject类
// 导入maven依赖,此处使用fastjson
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.58</version>
</dependency>
/** 情景一:o.toString()={"timestamp": 1592980664000,"type": 3,"isSuccess": true} 情景二:o.toString()={MDT_EN_GB6_AIR_PRESS=99.5, MDT_EN_GB6_REAGENT_ALLOWANCE=98, MDT_EN_GB6_SCR_NOX_DOWN=65535 ...省略} */
//方法一:
//适用于情景一,适用于json格式的object类,parseObject()方法用于json字符串:
//情景二使用会报错:com.alibaba.fastjson.JSONException: expect ':' at 0, actual =,toString()方法生成的不是json格式报错。
JSONObject jsonObject = JSONObject.parseObject(o.toString());
//方法二:强转
//适用于情景一,只适用于json格式的object类:
JSONObject jsonObject = (JSONObject)o;
//适用于情景二,map格式、Collection格式等等,toJSON()方法将object类转换成JSON格式的object类:
JSONObject jsonObject = (JSONObject) JSON.toJSON(o);
//通过jsonObject对象,就可以很方便的获取属性值
Object tp = jsonObject.get("type");
String type = jsonObject.getString("type");
- Object类->Map集合
//适用于情景二,只适用于map格式的object类:
Object o = map.get("MDT_EN_DA_GB6_TYPE");
Map entry = (Map)o;
Object down = entry.get("MDT_EN_GB6_SCR_NOX_DOWN");
Complete!!!
当然Object类->JsonObject类,还有Jackson、Gson以及官方JSON,可以多多尝试。
如果使用JSONObject.fromObject()这个方法转换对象,
必须引用的包为net.sf.json.JSONObject,这个包引用依赖较多,在此贴一下。
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>1.9.3</version>
</dependency>
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>3.2.1</version>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>net.sf.ezmorph</groupId>
<artifactId>ezmorph</artifactId>
<version>1.0.6</version>
</dependency>
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>2.2.3</version>
<classifier>jdk15</classifier><!-- jdk版本 -->
</dependency>
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/134197.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...