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

Object类通过转为JsonObject或Map获取属性值「建议收藏」Object类通过转为JsonObject或Map获取属性值简介:在项目使用中,我们经常会遇到object类,如何快速的获取其属性值?在此,不通过反射机制获取,而是将其转为JsonObject类或者Map,获取其对应属性名的属性值。Object类//object使用情景一:Objecto=redisTemplate.opsForHash().get(vehicleMessage,engineCode);//object使用情景二:Objectob=json.get

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

Object类通过转为JsonObject或Map获取属性值

  • 简介:

在项目使用中,我们经常会遇到object类,如何快速的获取其属性值?在此,不通过反射机制获取,而是将其转为JsonObject类或者Map,获取其对应属性名的属性值。

  • Object类

//object使用情景一:
//object类值形式为:{“name”:“value”,“name1”:“value1”},json格式
Object o = redisTemplate.opsForHash().get(vehicleMessage, engineCode);
object o 内容
//object使用情景二:
//object类值形式为:{name=value,name1=value1},map格式
Object o = json.get(“MDT_EN_DA_GB6_TYPE”);
object ob 内容

  • 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>
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • mysql分区语句

    mysql分区语句1:为未分区表创建分区ALTERTABLEtrb3PARTITIONBYKEY(id)PARTITIONS2;2:删除某个分区的数据ALTERTABLEtrDROPPARTITIONp2;3:为分区表添加一个分区ALTERTABLEmembersADDPARTITION(PARTITIONp3VALUESLESSTHAN(2…

    2022年4月29日
    122
  • 贴片电阻查询_贴片电阻的封装是什么

    贴片电阻查询_贴片电阻的封装是什么随着新技术的不断发展,目前电阻的种类有很多种,常见的有:薄膜和厚膜电阻(贴片电阻)、金属膜电阻、碳膜电阻、绕线电阻等。其中,贴片电阻器又可分为低阻值贴片电阻器,贴片电阻器阵列,贴片网络电阻器等。贴片电阻器的封装和尺寸的关系(长,宽,高)0201封装电阻对应的尺寸大小为(0.6,0.3,0.23),0402封装电阻对应的尺寸大小为(1.0,0.5,0.3),0603封装电阻对应的尺寸大小为(1.6,0.8,0.4),0805封装电阻对应的尺寸大小为(2.0,1.25,0.5),1206封装电阻对应的尺寸.

    2022年8月21日
    5
  • 【JavaScript框架封装】实现一个类似于JQuery的属性框架的封装

    【JavaScript框架封装】实现一个类似于JQuery的属性框架的封装

    2021年6月9日
    105
  • 最大矩形 —— 单调栈「建议收藏」

    最大矩形 —— 单调栈「建议收藏」https://cn.vjudge.net/contest/245662#problemAhistogramisapolygoncomposedofasequenceofrectanglesalignedatacommonbaseline.Therectangleshaveequalwidthsbutmayhavedifferentheigh…

    2022年9月22日
    3
  • PyCharm与Python的安装教程2021.11

    PyCharm与Python的安装教程2021.11文章预览:一、进入官网下载PyCharm安装包二、等待下载完成后点击进行安装三、Python安装(只介绍最新版本)四、第一个PyCharm程序五、PyCharm安装第三方库方法一、进入官网下载PyCharm安装包自行进入PyCharm官网或点击https://www.jetbrains.com/pycharm/download/#section=windows下载的是社区版,免费并且足够使用。二、等待下载完成后点击进行安装1.点击next2.选择自己要安装的目录3.勾选一些设定(1

    2022年8月28日
    7
  • 异或和与运算_逻辑异或运算规则

    异或和与运算_逻辑异或运算规则异或,是一个数学运算符,英文为exclusiveOR,缩写为xor,应用于逻辑运算。异或的数学符号为“⊕”,计算机符号为“xor”。其运算法则为:a⊕b=(¬a∧b)∨(a

    2022年8月1日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号