JSON处理和HttpMessageConverter<T> Java

228 篇文章 ¥59.90 ¥99.00
本文介绍了在Java开发中如何利用Spring框架的HttpMessageConverter接口处理JSON数据。内容涉及Json处理的重要性,HttpMessageConverter的角色,以及如何配置Spring MVC以支持JSON数据的转换。通过示例代码展示了如何创建数据模型、Controller以及配置转换器,使得处理JSON请求和响应变得简单灵活。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JSON处理和HttpMessageConverter Java

在Java开发中,处理JSON数据是一项常见的任务。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛用于前后端数据传输和存储。Java提供了多种处理JSON的方式,其中一个常用的方式是使用HttpMessageConverter接口来处理JSON数据的转换和序列化。

HttpMessageConverter是Spring框架中用于处理HTTP请求和响应的抽象接口。它定义了将HTTP消息转换为Java对象以及将Java对象转换为HTTP消息的方法。在Spring MVC中,HttpMessageConverter扮演着重要的角色,用于处理请求和响应的数据格式转换。对于处理JSON数据,Spring提供了多个实现了HttpMessageConverter接口的类,例如MappingJackson2HttpMessageConverter。

下面我们将详细介绍如何使用HttpMessageConverter来处理JSON数据。

首先,我们需要导入相关的依赖。在Maven项目中,可以通过在pom.xml文件中添加以下依赖来引入Spring框架和Jackson库:

<dependency>
    
{"code":200,"msg":"sys.option.success","data":[{"checkType":"FIELD","fieldName":"modelNo","expected":"A2676","actual":"Not Found","valid":false},{"checkType":"FIELD","fieldName":"gtin","expected":"04549995463484","actual":"Not Found","valid":false},{"checkType":"FIELD","fieldName":"product","expected":"MW2K3AM/A","actual":"Not Found","valid":false},{"checkType":"FIELD","fieldName":"sscc18","expected":"101959490980003121","actual":"Not Found","valid":false},{"checkType":"FIELD","fieldName":"count","expected":"10","actual":"Not Found","valid":false},{"checkType":"FIELD","fieldName":"s1","expected":"(02)04549995463484(37)10","actual":"Not Found","valid":false}]}我选择xml还是这样的 在apifox里面我选择xml 我的代码@Configuration public class WebConfig implements WebMvcConfigurer { @Bean public MappingJackson2XmlHttpMessageConverter xmlConverter() { return new MappingJackson2XmlHttpMessageConverter(); } @Override public void configureMessageConverters(List<org.springframework.http.converter.HttpMessageConverter<?>> converters) { converters.add(xmlConverter()); converters.add(new MappingJackson2HttpMessageConverter()); } } public JsonNode parseJson(String jsonContent) throws Exception { // return this.objectMapper.readTree(jsonContent); try { // 尝试解析 JSON return objectMapper.readTree(jsonContent); } catch (Exception e) { try { // 尝试解析 XML return xmlMapper.readTree(jsonContent); } catch (Exception ex) { throw new Exception("Failed to parse JSON or XML", ex); } } } @PostMapping(value = "/compare",produces = {MediaType.APPLICATION_JSON_VALUE, MediaType.APPLICATION_XML_VALUE}) public R compare(@RequestPart("File") MultipartFile file, @RequestPart("jsonContent") String jsonContent) { //读取PDF文本 String pdfText = compareService.extractContent(file); //解析JSON配置 JsonNode jsonConfig = null; try { jsonConfig = compareService.parseJson(jsonContent); } catch (Exception e) { return R.fail(MessageUtils.message("failed.convert.json")); } //执行对比校验 List<ValidationResult> results = compareService.compareContent(pdfText, jsonConfig); //返回没有匹配成功的数据 List<ValidationResult> failedResults = new ArrayList<>(); for (ValidationResult result : results) { if (!result.isValid()) { failedResults.add(result); } } if (failedResults.isEmpty()) { return R.ok("条件符合规范"); } else { return R.ok(failedResults); } }
07-11
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值