基于java配置springMVC以json格式返回java对象

SpringMVC05:Json交互处理 什么是JSON? JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式,目前使用特别广泛。 采用完全独立于编程语言的文本格式来存储和表示数据。 简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。 在 JavaScript 语言中,一切都是对象。因此,任何JavaScript 支持的类型都可以通过 JSON 来表示,例如字符串、数字 阅读详情

没有参考书,只能先百度别人是如何配置的。首先确定需要使用 @ResponseBody 注解,而XML配置如下:

    <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
        <property name="messageConverters">
            <list>
                <ref bean="mappingJackson2HttpMessageConverter" />
            </list>
        </property>
    </bean>
    <bean id="mappingJackson2HttpMessageConverter" 
    		class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
        <property name="supportedMediaTypes">
            <list>
            	<value>application/json;charset=UTF-8</value>
                <value>text/html;charset=UTF-8</value>
                <value>text/json;charset=UTF-8</value>    
            </list>
        </property>
     </bean>

xml配置转载自:https://blog.youkuaiyun.com/alan_liuyue/article/details/53433325

我的springMVC是基于java配置的(个人爱好),所以不能直接粘xml配置。但是xml和java配置是有对应关系的(尽管不是完全对应)。所以,还是可以得到一些信息。 显然,这块配置的重点在于MappingJackson2HttpMessageConverter类,和其supportedMediaTypes属性;

于是在springWeb部分的文档查找MappingJackson2HttpMessageConverter类,相关度最高的结果如下:

MappingJackson2HttpMessageConverter类配置

文档链接:https://docs.spring.io/spring-framework/docs/4.3.10.RELEASE/spring-framework-reference/html/mvc.html#mvc-features

(英语不行的,可以下一个有翻译功能的浏览器(chrome就不错),虽然翻译水平很差,但比没有强,另外,在当前页面按 ctrl+f 可以查找内容,和word一样)

查找文档,并且结合先前的xml信息,可以得知(或者说猜测):配置消息转化器,需要重写WebMvcConfigurerAdapter类的configureMessageConverters方法。然后在方法中new 一个MappingJackson2HttpMessageConverter对象,并设置其supportedMediaTypes属性。
最后将对象添加到方法的入口参数converters对象中。(注:WebMvcConfigurerAdapter类就是配置视图解析器的那个类)

到这终于可以敲代码了:

@Override
	public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
		MappingJackson2HttpMessageConverter mapJacksonConverter=new MappingJackson2HttpMessageConverter();
		mapJacksonConverter.setSupportedMediaTypes(mediaTypesList); // 到这一步发现此方法接受List<MediaType>参数,然后又是一番尝试 o(╯□╰)o
		List<MediaType> mediaTypesList = new LinkedList<MediaType>();   // List 只是一个接口,意味着不能通过LIst<Object> list=new List<Object> ()  实例化,需要给List赋一个子类对象, 比如LinkedList;
		mediaTypesList.add(MediaType.APPLICATION_JSON_UTF8);
		mediaTypesList.add(MediaType.TEXT_HTML);
		mediaTypesList.add(MediaType.APPLICATION_JSON_UTF8);
		converters.add(mapJacksonConverter);
	}

最后不要忘记在返回对象的控制器方法上加 @ResponseBody 注解

本来以为这样就可以了,可是运行不出结果。百度得知, springMVC将对象解析为json格式需要 jackson的包,不过不用格外配置,构建路径就行,因为springMVC对jackson是默认支持的

将依赖的包下载后导入(如果是maven工程,就在pom.xml配置),导入jackson-annotations-2.9.7, jackson-core-2.9.7,jackson-databind-2.9.7 这三个包

运行成功;

控制器返回前端的是一个json对象,输出对象内容可以使用如下语句:

function(data,status){
	alert("数据: " + data.city+ "\n状态: " + status);   //此函数是jquery的 post()回调函数,'city'是对象的属性之一
}

效果如下:

输出json对象的属性

这就是基于java 配置 对象转换为json格式;

一文读懂AI大模型时代的RAG技术 RAG(Retrieval-Augmented Generation,检索增强生成) 是一种结合检索技术与生成模型的技术架构,旨在通过动态引入外部知识库增强大语言模型(LLM)的生成能力。其核心思想是通过检索系统从外部数据源(如企业知识库、实时文档等)获取相关信息,并将检索结果作为上下文输入生成模型,以提高生成答案的准确性、时效性和专业性 阅读详情

相关推荐

手把手教你用SpringBoot+Vue3+Docker从零搭建一个在线OJ系统(附完整源码)

本文详细介绍了如何使用SpringBoot、Vue3和Docker从零搭建一个在线OJ系统,涵盖前后端开发、判题机实现及Docker容器化部署。通过完整的源码和实战步骤,帮助开发者掌握OJ系统的核心架构与关键技术,适用于算法训练、编程竞赛等场景。

weixin_42648844的博客 297

Spring MVC JSON交互

Spring MVC JSON交互 1.配置 在Spring MVC的处理流程中的HandlerAdapter部分增加了对JSON格式的转换。需要在HandlerAdapter中配置对应的messageConverters。将配置添加到Spring MVC的配置文件中,代码: <!--注解适配器 --> <bean class="org.springframework.web...

weixin_34368949的博客 80

单精度浮点数存储、双精度浮点数存储

单精度浮点数存储、双精度浮点数存储

fancynthia的博客 1316

java 控制器 返回 json,SpringMVC中controller返回json数据的方法

本文实例为大家分享了SpringMVC中controller返回json数据的2种方法,供大家参考,具体内容如下1.jsp的ajax请求:function getJson(){$.ajax({type:"get",dataType:"json",url:"getJson",success:function(data){for(var i=0;ialert("Id:"+data[i].id+" u...

weixin_31018573的博客 413

卡诺图化简法注意事项+竞争冒险知识点总结

今天反思以下卡诺图化简法中的注意事项。 卡诺图看起来简单,但如果不熟悉的话很容易出错,因此要对画圈的规则比较熟悉。

weixin_42415266的博客 1万+

深度解析快递柜管理系统的C++实现:设计与实现

本文详细介绍了一个基于C++的快递柜管理系统的设计与实现,包括系统需求分析、架构设计、数据库设计、关键功能模块实现和测试与验证。通过详细的代码示例和理论分析,读者可以全面了解如何开发一个完整的快递柜管理系统。希望本文能够为读者在实际项目开发中提供有价值的参考。

m0_57781768的博客 714

Java--SpringMVC之处理器方法返回值

一、处理器方法返回值 使用@Controller注解的处理器方法,返回值会有四种类型:ModelAndView、String、Void、自定义Java对象 1、ModelAndView ModelAndView:有数据和视图 若处理器方法处理完后,需要跳转到其它资源,且又要在跳转的资源间传递数据,此时 处理器方法返回 ModelAndView 比较好。 若该处理器方法只是进行跳转而不传递数据,或只是传递数据而并不向任何资源跳转(如对页面的 Ajax 异步响应),此时返回 ModelAndView

MinggeQingchun的博客 1001

Mac安装Typescript报错

根本原因是系统级目录的权限限制。推荐通过修改目录权限或使用nvm彻底解决问题。

江拥羡橙的博客 210

java xml收文转对象_Springmvc发送json数据转Java对象接收

1、导包基于mavencom.fasterxml.jackson.corejackson-databind2.9.0 com.fasterxml.jackson.corejackson-core2.9.0com.fasterxml.jackson.corejackson-annotations2.9.02、jsp代码$(function () {$.ajax({url:"${pageContext...

weixin_34511324的博客 223

手把手教你学RDMA驱动开发专栏--第7章 队列对(QP)与数据传输实现​7.3 完成队列(CQ):事件通知机制与轮询/中断模式

本章详细探讨了RDMA驱动中完成队列(CQ)的事件通知机制,重点分析了轮询与中断两种模式的实现原理及优化策略。CQ作为操作结果的报告载体,其核心功能包括结果反馈、事件通知和资源同步。轮询模式通过主动查询实现低延迟,适合高性能场景;中断模式通过被动通知节省CPU资源,适用于低频事件处理。驱动实现需考虑CQ溢出防护、多QP共享同步等关键问题,并提供事件通道机制将CQE传递给用户态。通过对比两种模式的优缺点及适用场景,揭示了RDMA系统在性能与资源间的权衡机制。

MHD0815的博客 396

【个人成长笔记】在Ubuntu中安装RTL8188GU USB无线网卡驱动(Driver for Linux RTL8188GU)

这篇笔记提供了在Ubuntu系统中安装RTL8188GU无线网卡驱动的完整指南。主要内容包括:驱动程序的官方来源(Github链接)、详细安装步骤(通过git下载、编译安装等命令),以及将设备转换为USB网卡模式的关键指令。特别提醒每次开机都需要执行模式转换命令,因为设备默认会以U盘模式启动。文章以简洁的技术文档形式呈现,适合Linux用户快速查阅和操作。

yuhuasheng1997的博客 1827

springmvc java对象无法返回json格式问题

话不多说,三部: 一、在pom.xml引入jakcson <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <ver...

djm18967的博客 339

【基于CKF的IMM】CV和CT两个模型下的IMM,二维,滤波使用CKF(容积卡尔曼滤波),附完整的matlab代码

该文章摘要: 本文提出了一种基于交互多模型(IMM)和容积卡尔曼滤波(CKF)的融合定位算法,用于解决目标在直线运动和转弯机动之间的模型切换问题。通过MATLAB仿真实现了IMM-CKF算法,并与单一的CV-CKF(匀速模型)和CT-CKF(匀角速转弯模型)方法进行对比。实验结果表明,在包含直线段和转弯段的复合轨迹跟踪中,IMM-CKF方法能够自适应调整模型权重,显著提高了定位精度。轨迹跟踪图、位置/速度误差对比图以及模型概率曲线直观展示了IMM算法的优势。文章提供了完整的MATLAB实现代码,可用于目标跟

985工科博士毕业,专攻定位、导航和滤波等算法研究。从业10年,主要使用MATLAB 615

SpringMVC返回Object自动转为Json

只需要加入依赖即可 <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.12.6</version> </dependency>

RETURN100ERRORS的博客 642

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

springMVC——@ResponseBody处理json的步骤

步骤一:导入jackon的依赖包 <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.12.1</version> </dependency> 步骤二:在SpringMVC的核心配置文件中开启mvc的注解驱

zaq977684的博客 916

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

JSON详解

一、概述 JSON(JavaScript Object Notation, JS对象标记)是一种轻量级的数据交换格式,目前使用特别广泛。 采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得JSON成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。 在 JavaScript 语言中,一切都是对象。因此,任何JavaScript 支持的类型都可以通过 JSON 来表示,例如字符串、数字、对象、数组等。看看他的要求和语法格式: 对象表示

[爪洼ing]的博客 6846

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

java restful返回json_Spring mvc实现Restful返回json格式数据实例详解

在本示例中,我们将向您展示如何将对象转换成json格式并通过spring mvc框架返回给用户。使用技术及环境:spring 3.2.2.releasejackson 1.9.10jdk 1.6eclipse 3.6maven 3ps:在spring 3 中,要输出json数据,只需要添加jackson 库到你的classpath。1、项目依赖spring和jackson的依赖:xmlns:xsi...

weixin_31879641的博客 411

SpringMVC(七)ajax处理json数据

ajax处理json数据 a.导入jar包,否则报错 jackson-annotations-2.8.9.jar jackson-core-2.8.9.jar jackson-databind-2.8.9.jar b. handler //告诉SpringMVC,此时的返回不是一个View页面,而是一个ajax调用的返回值(Json数组) @ResponseBody @RequestMapping(value="testJson") public List<Student>

weixin_44788545的博客 193

SpringMVC 访问Controller 报错:e No converter found for return value of type: class java.util.ArrayLis

1、controller方法如下: @RequestMapping("/a2") public List<User> ajaxtest(){ List<User> userList = new ArrayList<User>(); userList.add(new User("妗妗1",1,"女")); userList.ad...

ljj123_的博客 524

SpringMVC中使用restful(返回ResponseVo)

1,添加依赖:jackson负责实现Java对象和json字符串之间的相互转换。 <!--配置jackson依赖负责Java对象和json字符串之间的转换--> <dependency> <groupId>com.fasterxml.jackson.core</groupId> ...

shilihuakai的博客 4278

SpringMVC-json

json JSON(JavaScript Object Notation, JS 对象标记)是一种轻量级的数据交换格式,目前使用广泛。 采用完全独立于编程语言的文本格式来存储和表示数据。 简洁和清晰的层次结构使得Json成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效的提升网络传输效率。 在 JavaScript 语言中,一切都是对象。因此,任何JavaScript 支持的类型都可以通过 JSON 来表示,例如字符串、数字、对象、数组等。看看他的要求和语法格式: 对象表示

Filwaod 208

【SpringMVC 笔记】Json 交互处理

var json = JSON.stringify({a: ‘Hello’, b: ‘World’}); // 结果是 ‘{“a”: “Hello”, “b”: “World”}’ 测试代码: // 编写一个 js对象 var user = { name : “yusael”, age : 3, sex : “男” }; // 将 js对象 转为 json字符串 var str = JSON.stringify(user); console.log(str); // 将 json字符串 转为js对象 var

m0_62674072的博客 177

javaweb实训第六天上午——JSON&SpringMVC进阶

JSON&SpringMVC进阶1.课程介绍2.JSON2.1.JSON概述2.2.JSON语法2.2.1.如何用JSON表示一个对象2.2.2.如何用JSON表示一个数组2.2.3.JSON字符串和JSON对象3.SpringMVC返回JSON3.1.Java对象转成JSON格式的数据3.2.Json中对日期格式的特殊处理3.3.注意事项4.文件上传与下载4.1.文件上传4.1.1.添加jar文件4.1.2.jsp页面4.1.4.后台处理4.2.文件下载4.2.1.前台代码4.2.3.解决中文问题

dearQiHao的博客 1120

SpringMVC之Json交互处理

Json交互处理1>Json基础2>JSON和JavaScript对象互转2.1、代码实现3>Controller返回JSON数据4>代码优化4.1、乱码统一解决4.2、返回json字符串统一解决4.3、测试集合输出4.4、输出时间对象4.5、抽象工具类5>FastJson5.1、fastjson 三个主要的类5.2、代码演示 1>Json基础 JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式,目前使用特别广

oLengNuanZiZhi12的博客 193

SpringMVC中@ResponseBody的相关注意点

欢迎支持笔者新作:《深入理解Kafka:核心设计与实践原理》和《RabbitMQ实战指南》,同时欢迎关注笔者的微信公众号:朱小厮的博客。 博主习惯性用SpringMVC的@ResponseBody注解返回JSON字符串,原先采用的方法是GSON将对象转换成json字符串。(需要引入gson-2.x.x.jar的jar包) @ResponseBody @Reques...

朱小厮的博客 1万+

Springmvc文件上传

Springmvc之文件上传和json支持 Struts的文件上传 上传界面一个 from是多功能表单enctype="mytipart/form-data" method="post" UpoladFileAction File file String fileFileName String fileContentType 完成图片的虚拟映射 为了开...

chen的博客 178
上一篇: form提交到controller出现404
下一篇: LL(1)预测分析程序
布衣之怒
博客等级 码龄7年 1粉丝 14原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值