将返回的ResponseBody转为实体类

Retrofit请求把返回数据ResponseBody 传到Activity层处理成json 1、Retrofit网络请求需要封装一个对象,在接口请求时作为接收返回的数据,有时候需要将接口返回的json返回到接口请求回调中做处理,以下代码处理返回数据: /** * ResponseBody 处理成 Json */ private String doJson(ResponseBody responseBody) { long contentLength = respo... 阅读详情
当网络请求返回ResponseBody时,如何将ResponseBody转为实体对象?
1.如果是个无嵌套的普通的实体类,可使用如下方法:
public Object JSONTOBean(ResponseBody body, Class clazz)
{
    Object obj = null;
    try
    {
        String json = new String(body.bytes());
        Gson gson = new Gson();
        obj = gson.fromJson(json, clazz);
    }
    catch (IOException e)
    {
        e.printStackTrace();
    }
    return obj;
}
2.如果是有嵌套的实体类,可使用如下方法:
//注意Type的包为:java.lang.reflect.Type
public Object JSONTOBean(ResponseBody body, Type type)
{
    Object obj = null;
    try
    {
        String json = new String(body.bytes());
        Gson gson = new Gson();
        obj = gson.fromJson(json, type);
    }
    catch (IOException e)
    {
        e.printStackTrace();
    }
    return obj;
}
3.完整代码:
public class ResponseBodyToBean
{
    private ResponseBodyToBean()
    {
    }

    private static class Holder
    {
        private static ResponseBodyToBean instance = new ResponseBodyToBean();
    }

    public static ResponseBodyToBean getInstance()
    {
        return Holder.instance;
    }

    public Object JSONTOBean(ResponseBody body, Class clazz)
    {
        Object obj = null;
        try
        {
            String json = new String(body.bytes());
            Gson gson = new Gson();
            obj = gson.fromJson(json, clazz);
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }
        return obj;
    }

    public Object JSONTOBean(ResponseBody body, Type type)
    {
        Object obj = null;
        try
        {
            String json = new String(body.bytes());
            Gson gson = new Gson();
            obj = gson.fromJson(json, type);
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }
        return obj;
    }
}
4.实例:将网络请求返回的ResponseBody的如下内容转为实体对象:
{
	"weatherinfo": {
		"city": "北京",
		"cityid": "101010100",
		"temp": "27.9",
		"WD": "南风",
		"WS": "小于3级",
		"SD": "28%",
		"AP": "1002hPa",
		"njd": "暂无实况",
		"WSE": "<3",
		"time": "17:55",
		"sm": "2.1",
		"isRadar": "1",
		"Radar": "JC_RADAR_AZ9010_JB"
	}
}
4.1)定义实体类对象
public class JsonRootBean 
{
    private Weatherinfo weatherinfo;
    public void setWeatherinfo(Weatherinfo weatherinfo) 
    {
        this.weatherinfo = weatherinfo;
    }
    public Weatherinfo getWeatherinfo() 
    {
         return weatherinfo;
    }
}
public class Weatherinfo
{
    private String city;
    private String cityid;
    private String temp;
    private String WD;
    private String WS;
    private String SD;
    private String AP;
    private String njd;
    private Date WSE;
    private String time;
    private String sm;
    private String isRadar;
    private String Radar;
    public void setCity(String city)
    {
        this.city = city;
    }
    public String getCity()
    {
        return city;
    }
    public void setCityid(String cityid)
    {
        this.cityid = cityid;
    }
    public String getCityid()
    {
        return cityid;
    }
    public void setTemp(String temp)
    {
        this.temp = temp;
    }
    public String getTemp()
    {
        return temp;
    }
    public void setWD(String WD)
    {
        this.WD = WD;
    }
    public String getWD()
    {
        return WD;
    }
    public void setWS(String WS)
    {
        this.WS = WS;
    }
    public String getWS()
    {
        return WS;
    }
    public void setSD(String SD)
    {
        this.SD = SD;
    }
    public String getSD()
    {
        return SD;
    }
    public void setAP(String AP)
    {
        this.AP = AP;
    }
    public String getAP()
    {
        return AP;
    }
    public void setNjd(String njd)
    {
        this.njd = njd;
    }
    public String getNjd()
    {
        return njd;
    }
    public void setWSE(Date WSE)
    {
        this.WSE = WSE;
    }
    public Date getWSE()
    {
        return WSE;
    }
    public void setTime(String time)
    {
        this.time = time;
    }
    public String getTime()
    {
        return time;
    }
    public void setSm(String sm)
    {
        this.sm = sm;
    }
    public String getSm()
    {
        return sm;
    }
    public void setIsRadar(String isRadar)
    {
        this.isRadar = isRadar;
    }
    public String getIsRadar()
    {
        return isRadar;
    }
    public void setRadar(String Radar)
    {
        this.Radar = Radar;
    }
    public String getRadar()
    {
        return Radar;
    }
}
4.2)使用
java.lang.reflect.Type type = new TypeToken<JsonRootBean>() {}.getType();
JsonRootBean bean = (JsonRootBean) ResponseBodyToBean.getInstance().JSONTOBean(result, type);
5扩展:

Gson解析list类型的json

Gson gson = new Gson();
Type type = new TypeToken<List<Object>>() {}.getType(); 
List<Object> list = gson.fromJson(string, type);
【爬虫实战】Instagram博主图片爬取:模拟登录+滚动加载,轻松抓取高清美图 在当今社交媒体时代,Instagram作为全球最受欢迎的图片分享平台之一,汇聚了无数优质博主的海量精美图片。对于数据爱好者、营销分析师、AI训练数据收集者来说,如何高效、稳定地爬取Instagram博主的图片,成为了一项极具实用价值的技术挑战。然而,Instagram的反爬机制日益严格,传统的静态页面请求已经无法满足需求。本文将带你从零开始,使用2024-2025年最新技术栈,实现模拟登录、滚动加载、高清图片下载的全流程爬虫。✅ 全流程代码可直接运行✅ 模拟手机端请求绕过反爬。 阅读详情

相关推荐

使用基于物质点法(MPM)的Anura3D模拟沙柱坍塌

本博客使用开源软件Anura3D软件模拟了一个沙柱坍塌的过程,这个软件是基于基于物质点法(MPM)设计的

weixin_59902634的博客 4043

将response.body()的数组转为对象List

将response.body()的数组转为对象List

weixin_44019553的博客 2078

WVP-GB28181-Pro配置避坑指南:从零到上线全流程详解(含ZLM自动同步技巧)

本文详细解析了WVP-GB28181-Pro视频平台的配置流程,特别针对国标视频平台部署中的常见陷阱,如stream-ip/sdp-ip配置错误、ZLM自动同步问题及端口冲突等,提供了实用的解决方案和优化建议,帮助开发者快速实现从零到上线的全流程部署。

weixin_30836759的博客 93

@ResponseBody注解帮助我们返回的数据与自己返回的HttpEntity、ResponseEntity对象有什么区别?

@ResponseBody注解帮助我们返回的数据与自己返回的HttpEntity、ResponseEntity对象有什么区别?

进击的豌豆的博客 733

YOLOv8【第十二章:数据增强与数据工程篇·第10节】主动学习(Active Learning):如何挑选最有价值的样本进行标注!

🏆 本文收录于 《YOLOv8实战:从入门到深度优化》 专栏。该专栏系统复现并梳理全网各类 YOLOv8 改进与实战案例(当前已覆盖分类 / 检测 / 分割 / 追踪 / 关键点 / OBB 检测等方向),坚持持续更新 + 深度解析,质量分长期稳定在 97 分以上,可视为当前市面上 覆盖较全、更新较快、实战导向极强 的 YOLO 改进系列内容之一。

**My Coding Family** 508

【深度学习新浪潮】如何上手DINO v3:Meta新一代视觉大模型实战指南

自定义数据集类(适配本地/公开数据集)# 去除batch维度# 构建数据加载器# 定义分类模型(冻结预训练层,仅训练分类头)self.classifier = nn.Linear(dino_model.config.hidden_size, num_classes) # 分类头global_feat = outputs.global_attention_pool # 取全局特征# 初始化模型# 冻结预训练层(仅训练分类头)# 定义损失函数和优化器。

专注:太空算力、AI infra、异构调度、大模型成本工程 491

springboot将访问body转化成java对象_「Java」 - SpringBoot & web开发

通过上篇《「Java」 - SpringBoot & 基本web开发》可知Spring Boot对web开发做了很大的优化,包括开发、测试、部署都做了支持。除了基本的web开发,spring-boot-starter-web还有很多对web方面的支持,主要包括RESTful、参数校验、内嵌容器等功能。一、Json的支持Json(JavaScript Object Notation)是一种轻...

weixin_42392689的博客 1222

GeoScene Pro教程(002):GeoScenePro基础操作

GeoScenePro基础操作介绍。

WwLK123的博客 2461

使用@ResponseBody对象转json和@RequestBody进行json转对象案例

(1)什么时候使用到json? ajax请求 (2)javaBean对像与json互转 如阿里巴巴的fastjson (3)返回值转json @ResponseBody 注解加在方法上,SpringMVC可以自动将方法的返回对象转为json,发送给页面 (4)参数转json @RequestBody 在形参的前边加上@RequestBody注解,该注解可以自动解析页面发送过来的json数据,解析完之后,自动的将json中的数据封装到形参对象 案例代码 pom.xml <de..

水巷石子的博客 9823

车辆网络安全ISO/SAE 21434解读(一)概述

ISO/SAE 21434 《道路车辆 网络安全工程》是SAE和ISO共同制定的一项针对道路车辆的网络安全标准,它是一个面向汽车行业全供应链(OEM及各级供应商)的车辆网络安全管理指导文件

xiaoxiabang的博客 8426

046篇:数据统计:分组、求和、平均值、最大最小值

本文介绍了在RPA中实现数据分组统计的方法。通过字典+循环组合,可以完成按单字段或多字段的分组聚合操作,包括求和、计数、求平均值及最大/最小值等。文章详细讲解了分组统计的原理,并提供了单级分组、多级分组的具体实现步骤,最后通过销售数据按月分组的实战案例,演示了如何从原始数据到生成汇总报表的完整流程。这些方法可以灵活应用于各类数据统计分析场景。

weixin_59649563的博客 214

@RequestBody接收实体类的前后端问题

RequestBody 实际上就是接收到参数,把参数转成形参里面的对象, 但是形参里面本身是个对象,本身也没有这个。LoanApplyJudVO类的属性, 所以就无法转换,只能是接受的实体类中的属性,才可以转换,等于多了一层。

m0_60818235的博客 1068

华为OD机试真题2026双机位C卷 C语言 实现【明日之星选举】

给定一组选票votes。votes[i]代表第 i 张选票的内容,包含一个字符串"zhangsan,hanmei",表示推荐zhangsan为明日之星,反对 hanmei 称为明日之星。赞成或反对使用逗号(,)分割。 给定一个数组n,表示最后将筛选出赞成票最多的n个人,如果赞成票相同,则反对票越少,排序越靠前;如果赞成票和反对票都相同,则按照姓名字典序升序排序。

MISAYAONE的博客 184

SpringMVC加上ResponseBody或者RestController能返回String的原理

1. Controller返回的String作为View的名称 我们发送http://localhost:8080/hello请求到达Controller,Controller返回字符串"/hello" @RequestMapping("/hello") public String hello() { return "/hello"; } 这个字符串最终会返回到下面方法中的returnValu...

SpringMVC 2585

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

SpringBoot ResponseBody返回值处理

1. SpringBoot ResponseBody 返回值中null值处理 import java.nio.charset.Charset; import java.util.ArrayList; import java.util.List; import org.springframework.context.annotation.Configuration; import org.sprin...

小安灬的博客 4672

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

java responsebody_SpringBoot ResponseBody返回值处理的实现

1. springboot responsebody 返回值中null值处理@postmapping(path = "/test", produces = mediatype.application_json_value)public object test() {jsonobject jsonobject = new jsonobject();jsonobject.put("test","tes...

weixin_35681725的博客 958

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

android responsebody

我整理的一些关于【CI】的项目学习资料(附讲解~~)和大家一起分享、学习一下:https://d.51cto.com/bLN8S1Android ResponseBody 的科普文章 在Android开发中,与服务器进行HTTP通信是一个常见的任务。审核HTTP请求和响应是实现可靠网络交互的关键部分,而ResponseB...

weixin_42503660的博客 285

spring MVC 返回值信息和ResponseBody的响应json数据

spring mvc的界面返回: 如果我们定义的返回类型是String 那么我们返回的时候直接写入 我们的界面的名字就可以了 springmvc会自动去找到我们的界面,如果是void类型的返回那么 是没有返回值的,如果没有返回值这个时候我们定义了 请求信息但是没有返回 跳出去那么 就会报错 就需要自定义界面返回 /** * void定义的方法是没有...

weixin_33834075的博客 167

java responsebody_RequestBody和ResponseBody踩坑

RequestBody 和 RequestParam在前后端传json数据进行交互的时候,同学们会经常用到的两个注解。@RequestBody和@RequestParam主要是用来接收前端传给后端的json数据。一般来说,@RequestBody注解一般使用在post请求中,因为前端将json数据放在了请求体中。在后端接收的方法里@RequestBody可以和@RequestParam同时使用,但...

weixin_30577815的博客 713

SpringMVC-RequestBody,ResponseBody

1.ResponseBody: 将对象转换为json数据,返回给浏览器。 <a href="${ctp}/ajaxGetAllEmployees">ajax Get All Employees</a> <script type="text/javascript"> $("a:first").click(function(){ //1.发送ajax请求 $.ajax({ url:"${ctp}/ajaxGetAllEmployees",

Ezerbel的博客 278

responseBody返回jsonp格式

因为项目发布在公司自己服务器,没有绑定域名,只能在局域网之内使用。前端说正常访问不到,因为同源策略的原因,只能用jsonp请求。 jsonp要求返回的格式前面加多一个名字,包裹着json串,接口大部分都是写好的,而且代码中用的都是@ResponseBody注解,如果要在代码 用fastJson转json,完成这样的格式。相对来说会麻烦很多。个人百度看了好几篇文章。http://blog.csd

wwq_vracle的博客 6199

Okhttp直接用String或者json接收(ResponseBody)

和后台开发调试接口,封装的okhttp默认使用json解析,而且后台返回的格式都是json类型的 比如这种 { "result":null, "code":90201, "success":false, "msg":"店铺相关配置错误" } 接收 @Headers({"url:" + BuildConfig.UR_MESSAGE}) @GE...

lplj717的博客 2583

ResponseBody的作用

ResponseBodyResponseBody ResponseBody 在说ResponseBody之前不得不说一下RequestMapping,注解RequestMapping一般作用在controller上通常写法为@RequestMapping("/url"),其中url表示映射的地址即该类或者该方法的访问地址; @Controller @RequestMapping("/test") ...

weixin_40159122的博客 1087

Spring Cloud Gateway -- ResponseBody修改(解决ResponseBody不完整的问题)

Spring Cloud Gateway -- ResponseBody修改(解决ResponseBody不完整的问题)前言Response修改 前言 由于对方接口传输数据可能是xml,可能是json的,但是我希望前端获取到的响应是json格式的,所以需要在在响应中修改一下。 Response修改 由于接口返回数据较多,采用 fluxBody.map(dataBuffer -> 这个方式...

a294634473的博客 5861

spring mvc 中通过responsebody返回json格式到jsp页面乱码解决方法

原因是我用了@ResponseBody注解把返回值直接写到HTTP response body里,spring注解的默认编码是iso-8859-1,我的工程编码和页面都是utf-8,所以乱码 在springmvc的配置文件中加入

zl386119974的专栏 2331
上一篇: android:allowBackup = false后编译报错
下一篇: 动态代理实现mvp
「已注销」
博客等级 码龄12年 5粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值