首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Object类通过转为JsonObject或Map获取属性值「建议收藏」

Object类通过转为JsonObject或Map获取属性值「建议收藏」

作者头像
全栈程序员站长
发布2022-08-15 20:21:09
发布2022-08-15 20:21:09
8.2K00
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是你们的朋友全栈君。

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类
代码语言:javascript
代码运行次数:0
运行
复制
// 导入maven依赖,此处使用fastjson
<dependency>
	<groupId>com.alibaba</groupId>
	<artifactId>fastjson</artifactId>
	<version>1.2.58</version>
</dependency>
代码语言:javascript
代码运行次数:0
运行
复制
/** 情景一: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集合
代码语言:javascript
代码运行次数:0
运行
复制
//适用于情景二,只适用于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,这个包引用依赖较多,在此贴一下。

代码语言:javascript
代码运行次数:0
运行
复制
<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>

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/134197.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年5月2,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Object类通过转为JsonObject或Map获取属性值
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档