spring mvc 接受前台json @RequestBody json 属性 空 使用 JsonProperty spring mvc 获取json转乘bean
请给json序列序列化成的javabean 属性加上 @JsonProperty(value = "real_name") 否则 springmvc 可能接受不到数据
jackson的maven依赖
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.5.3</version>
</dependency>
aaarticlea/png;base64,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" alt="" />所以引入这一个依赖就可以了
@JsonProperty 此注解用于属性上,作用是把该属性的名称序列化为另外一个名称,如把trueName属性序列化为name,@JsonProperty(value="name")。

import com.fasterxml.jackson.annotation.JsonProperty;
public class Student {
@JsonProperty(value = "real_name")
private String realName;
public String getRealName() {
return realName;
}
public void setRealName(String realName) {
this.realName = realName;
}
@Override
public String toString() {
return "Student{" +
"realName='" + realName + '\'' +
'}';
}
}

测试

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper; public class Main {
public static void main(String[] args) throws JsonProcessingException {
Student student = new Student();
student.setRealName("zhangsan");
System.out.println(new ObjectMapper().writeValueAsString(student));
}
}

结果
{"real_name":"zhangsan"}
这里需要注意的是将对象转换成json字符串使用的方法是fasterxml.jackson提供的!!
如果使用fastjson呢?
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.28</version>
</dependency>

import com.alibaba.fastjson.JSON;
public class Main {
public static void main(String[] args) {
Student student = new Student();
student.setRealName("zhangsan");
System.out.println(JSON.toJSONString(student));
}
}

结果
{"realName":"zhangsan"}
可以看到,@JsonProperty(value = "real_name")没有生效,为啥?
因为fastjson不认识@JsonProperty注解呀!所以要使用jackson自己的序列化工具方法!
--------------------------
@JsonProperty不仅仅是在序列化的时候有用,反序列化的时候也有用,比如有些接口返回的是json字符串,命名又不是标准的驼峰形式,在映射成对象的时候,将类的属性上加上@JsonProperty注解,里面写上返回的json串对应的名字

import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
String jsonStr = "{\"real_name\":\"zhangsan\"}";
Student student = new ObjectMapper().readValue(jsonStr.getBytes(), Student.class);
System.out.println(student);
}
}

结果:
Student{realName='zhangsan'}
spring mvc 接受前台json @RequestBody json 属性 空 使用 JsonProperty spring mvc 获取json转乘bean的更多相关文章
- pyhton 从web获取json数据 保存到本地然后再读取
从web中获取json数据直接进行处理总认为太慢.主要是从web中获取获取数据的过程有点慢. 所以就在想 假设先利用空暇时间把json数据获取并保存到本地,然后再从本地文件里读取和操作.应该就要快非常 ...
- 富文本编辑器--获取JSON
获取 JSON 格式的内容 可以通过editor.txt.getJSON获取 JSON 格式的编辑器的内容,v3.0.14开始支持,示例如下 <div id="div1"&g ...
- Spring boot接受json赋值给java对象
Spring boot接受json赋值给java对象 新建 模板 小书匠 前言 写这个东西,一方面是我自己在做项目的时候,对json的使用还不是十分的熟悉,对spring boot的使用也不是很熟悉, ...
- MVC接受JSON的一些注意事项
1.MVC接受前端传的JSON数据,相应的接受参数的位置使用@RequestBody注解进行标注 2.JSON传空字符串时,后台使用Integer进行接受时,会报for String ''一堆乱七八糟 ...
- json数据前台解析 修改check属性用prop()
jQuery中的$.getJSON( )方法函数主要用来从服务器加载json编码的数据,它使用的是GET HTTP请求.使用方法如下: $.getJSON( url [, data ] [, succ ...
- Spring MVC 接受的请求参数
目录 1. 概述 2. 详解 2.1 处理查询参数 2.2 处理路径参数接受输入 2.3 处理表单 3. 补充内容 3.1 Ajax/JSON 输入 3.2 multipart参数 3.3 接收 he ...
- spring mvc 接受多对象的处置
spring mvc 接受多对象的处理 spring mvc感觉非常好用,尤其是对接收对象參数的自己主动绑定非常简便,但对于同一时候传多个对象时有些困扰. 同一时候项目并没有直接使用spring的fo ...
- 序列化json对象,通过ajax传入asp.net mvc后台
序列化json对象,通过ajax传入asp.net mvc后台 序列化json对象,通过ajax传入asp.net mvc后台 今天遇到一个问题,准备把组织好的json对象通过jquery.aja ...
- (六)Net Core项目使用Controller之一 c# log4net 不输出日志 .NET Standard库引用导致的FileNotFoundException探究 获取json串里的某个属性值 common.js 如何调用common.js js 筛选数据 Join 具体用法
(六)Net Core项目使用Controller之一 一.简介 1.当前最流行的开发模式是前后端分离,Controller作为后端的核心输出,是开发人员使用最多的技术点. 2.个人所在的团队已经选择 ...
随机推荐
- Cookie安全漫谈(转)
add by zhj: 我也同意作者的观点,JavaScript 操作 Cookie 是一种不正常的做法:可以用 JavaScript 操作 Cookie 完成的功能,一样可以在服务端来完成. js操 ...
- 给定一种 pattern(模式) 和一个字符串 str ,判断 str 是否遵循相同的模式。 这里的遵循指完全匹配,例如, pattern 里的每个字母和字符串 str 中的每个非空单词之间存在着双向连接的对应模式。
这个是LeetCode上的一道题目.本机上运行时正确的,但是LeetCode上显示是错误的,所以没有办法了只能记录在博客上了. 我的想法是先把pattern和str都转化成数组.例如"abb ...
- @interface注释用法
java用 @interface Annotation{ } 定义一个注解 @Annotation,一个注解是一个类. @Override,@Deprecated,@SuppressWarnings ...
- 001.NTP简介
一 NTP简介 ntp服务器顾名思义就是时间同步服务器(Network Time Protocol),时间同步对于计划备份.入侵检测记录.分布式任务调度或者事务订单管理来说都是非常有必要的日常任务. ...
- 多线程十之CopyOnWriteArrayList源码分析
目录 简介 类结构 源码解析 构造方法 add(E e) add(int index, E element) get(int index) remove(int index) 迭代器Iterator遍 ...
- 学习字典才联想到要和 JSP 说再见了
最开始只是想让页面能够映射出我的字典值,然而却发现了更大的问题. 假如你自己做一个 demo ,需要前台页面映射出字典数据你会怎么做呢?大致的思路应该是有的,准备字典,准备数据,然后将两部分进行映射. ...
- python文件相关操作
Python文件相关操作 打开文件 打开文件,采用open方法,会将文件的句柄返回,如下: f = open('test_file.txt','r',encoding='utf-8') 在上面的代码中 ...
- 最新的裸机联想笔记本装win7系统/SSD(固态硬盘)上安装win7系统/联想K4450A i7装win7系统
老师让我帮他装个操作系统,由于是新电脑,并且老师的电脑上另安有固态硬盘,老师要我把系统安装在固态硬盘上,BIOS是2014年7月份的,所以BIOS设置项可能会有所变化. 下面是遇到的一些问题,及解决方 ...
- BZOJ4175 : 小G的电话本
用后缀树统计出出现了x次的本质不同的子串的个数,最后再乘以x,得到一个多项式. 这个多项式常数项为0,但是一次项不为0. 于是把整个多项式除以一次项,通过多项式求ln和多项式求exp求出它的幂. 最后 ...
- 【UOJ#179】线性规划 单纯形
题目链接: http://uoj.ac/problem/179 Solution 就是单纯形模板题,这篇博客就是存一下板子. Code #include<iostream> #includ ...