首页 > 其他分享 >JSON 返回数据命名不规范问题

JSON 返回数据命名不规范问题

时间:2023-10-19 17:56:25浏览次数:38  
标签:返回 序列化 String private JSON 命名 UserDto public

问题描述

后端代码如下:

@Data
public class UserDto {
    private String mUserName;
    private String mPassword;
}
@RestController
@Slf4j
public class UserController {
    @PostMapping("/user")
    public String getUserData(@RequestBody UserDto userDto) {
        log.info(userDto.toString());
        return userDto.toString();
    }
}

通过 Postman 向服务器发送请求,如下:

image-20231019172337769

测试结果

2023-10-19 17:22:17.710  INFO 21168 --- [nio-8080-exec-3] c.b.s.controller.UserController          : UserDto(mUserName=null, mPassword=null)

很明显,后端 UserDto 参数绑定失败,没有获取到前端发送的 JSON 格式数据。

原因分析

出错的原因是前端发送的 JSON 格式数据命名不规范(不是驼峰命名),导致反序列化出现问题。

解决方案

@JsonProperty 注解:用于类的属性上,作用是把该属性的名称序列化为另一个名称,如把 mUsername 属性序列化为 username

@Data
public class UserDto {
    @JsonProperty("mUsername")
    private String userName;
    @JsonProperty("mPassword")
    private String password;
}

再测试一下,如下:

image-20231019173852115

2023-10-19 17:30:22.154  INFO 2436 --- [nio-8080-exec-9] c.b.s.controller.UserController          : UserDto(userName=张三, password=11111)

问题解决:)

标签:返回,序列化,String,private,JSON,命名,UserDto,public
From: https://www.cnblogs.com/binbingg/p/17775271.html

相关文章

  • MJ和网络数据批量重命名
    importosimportopenpyxlimportreUNWANTED_UNITS=["undefined","皮皮","zly324"]#第一步:删名称defrename_files(path):files=[fforfinos.listdir(path)ifos.path.isfile(os.path.join(path,f))]renamed_files=[]counte......
  • react native 退出登录后清空路由栈并返回登录页
    背景:由于项目使用的expo-router,一开始时在退出登录是如下实现的:import{router}from"expo-router";...router.replace("/my/login/login");...使用expo-router的router.replace方法跳转至登录页。结果发现虽然跳转成功,但是点击手机返回操作时,虽然上一个页面没有了......
  • xStream完美转换XML、JSON
    xStream框架xStream可以轻易的将Java对象和xml文档相互转换,而且可以修改某个特定的属性和节点名称,而且也支持json的转换;前面有介绍过json-lib这个框架,在线博文:以及Jackson这个框架,在线博文:它们都完美支持JSON,但是对xml的支持还不是很好。一定程度上限制了对Java对象的描述,不能让xml......
  • laravel:异常时返回json(10.27.0)
    一,相关文档:https://learnku.com/docs/laravel/10.x/errors/14857#87364d二,php代码:1,app\exceptions\Handler.php增加以下一段:1234567891011//重写renderpublicfunctionrender($request,Throwable$e){    if(env('APP_DEBUG')){  ......
  • laravel:返回统一格式的json
    一,参考文档https://learnku.com/docs/laravel/10.x/responses/14850二,php代码1,App\extend\result\Result.php1234567891011121314151617181920212223242526272829303132333435<?php/*   统一格式的返回json数据*/na......
  • 按返回键不返回上一个Activity (Activity的启动模式)
    在实际项目开发中往往会遇到这样的情况,有A、B、C三个Activity,在A中启动B,在B中启动C。想在C中按back键直接返回到A,但是按back键返回的是B。怎么办?其实很简单,只需要设置B的启动模式为singleInstance,然后在B启动C之后finish()即可。例如: <activityand......
  • Go 函数多返回值错误处理与error 类型介绍
    Go函数多返回值错误处理与error类型介绍目录Go函数多返回值错误处理与error类型介绍一、error类型与错误值构造1.1Error接口介绍1.2构造错误值的方法1.2.1使用errors包1.2.2自定义错误类型二、error类型的好处2.1第一点:统一了错误类型2.2第二点:错误是值2.3第三点:易......
  • JsonPath使用(Java)
    JsonPath使用(Java)Java有一些类似于jq的语法库和工具。其中一个叫做JsonPath,它允许使用类似于jq的语法来查询和操作JSON数据。可以使用JsonPath来提取特定的JSON字段、过滤数据、执行计算等操作。另外,还有一些其他的Java库和框架也提供了类似的功能,比如FastJson,Gson和Jackson。这......
  • TDengine 资深研发整理:基于 SpringBoot 多语言实现 API 返回消息国际化
    作为一款在Java开发社区中广受欢迎的技术框架,SpringBoot在开发者和企业的具体实践中应用广泛。具体来说,它是一个用于构建基于Java的Web应用程序和微服务的框架,通过简化开发流程、提供约定大于配置的原则以及集成大量常用库和组件,SpringBoot能够帮助开发者更快速、更高效地......
  • Java命名规范
    Java命名规范1.包命名规范包(Package)的作用是将功能相似或相关的类或者接口进行分组管理,便于类的定位和查找,同时也可以使用包来避免类名的冲突和访问控制,使代码更容易维护。通常,包名使用小写英文字母进行命名,并使用“.”进行分割,每个被分割的单元只能包含一个名词。一般地,包......