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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(1)
blank

相关推荐

  • idea如何设置调用方法时提示方法注释

    idea如何设置调用方法时提示方法注释设置如下:File—&gt;Settings(Ctrl+Alt+s)—&gt;Editor—&gt;General—&gt;看下图

  • 初中基础学java_初中生也能学JAVA吗?[通俗易懂]

    初中基础学java_初中生也能学JAVA吗?[通俗易懂]初中生当然可以学java,初中正是学习力非常强的时期。如果你对计算机有兴趣,就去学啊。现在不是每个人都能明白自己的兴趣点在哪里的。但是由于孩子的年龄太小,自学能力的不足,找一个靠谱的学校从师而学才是正经的学习途径。北大青鸟沈阳三好就有专门为初中生开设的计算机课程,充分地体谅学生的学习情况以及学习基础,所以不用担心自己跟不上进度。Java自1995年问世以来,已历经21年的岁月。20年来,不管IT技…

  • 软件工程实验报告:图书管理系统

    软件工程实验报告:图书管理系统一、课程设计的目的与要求课程设计目的软件工程课程设计是学习软件工程课程后所进行的实践环节,目的是培养学生用工程化的思想和标准文档化的思想进行软件开发。本次课程设计通过开发一个小型实用的软件系统,亲身体验软件生命周期中的各个环节,以加深对软件工程课程的深入理解、锻炼独立分析、解决问题的能力。课程设计要求2.1课程设计准备1)复习软件工程课程的主要内容,熟练掌握软件生命周期的理论以及各阶段的基本概念。2)明确可行性分析、需求分析、设计、测试等阶段的基本任务和基本方法。3)熟练运用规范化的描述

  • phpstorm 激活码(破解版激活)

    phpstorm 激活码(破解版激活),https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

  • 阿里云服务器怎么开放端口_云服务器开启端口

    阿里云服务器怎么开放端口_云服务器开启端口阿里云服务器如何开放端口,这里我将开放8082端口,我们来看下吧方法/步骤 登录阿里云服务器并进入控制台,点击【云服务器ECS】。 在【云服务器ECS】点击【实例】并跳转到实例列表。 在实例列表找到要开放端口的云服务器实例。并点击后面的【更多】–》【网络和安全组】–》【安全组配置】。 在【本实例安全组】内点击【配置规则】打开【安全组规则】。这里有出\入的方向,这里我开放的是8082端口,属于入方向的。在这里可以新增规则,这里为了方便直接对已有的规

  • mybatis自动生成代码插件idea_pro tools插件

    mybatis自动生成代码插件idea_pro tools插件IntellijIdeaMybatis插件主要有Mybatisplugin插件和Mybatistools插件。(一)Mybatisplugin插件主要功能有:提供Mapper接口与配置文件中对应SQL的导航编辑XML文件时自动补全根据Mapper接口,使用快捷键生成xml文件及SQL标签ResultMap中的property支持自动补全

发表回复

您的电子邮箱地址不会被公开。

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