使⽤Jackson进⾏Json字段映射使⽤Jackson进⾏Json字段映射
使⽤Jackson注解进⾏字段映射
当json对象的字段名⼀致时会⾃动对对象进⾏映射,当不⼀致时就要借助注解进⾏字段映射。
导⼊Jackson相关maven依赖
<!-- jackson相关依赖-->
<dependency>
json转换对象<groupId>com.</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.10.0</version>
</dependency>
<dependency>
<groupId>com.</groupId>
<artifactId>jackson-core</artifactId>
<version>2.10.0</version>
</dependency>
<dependency>
<groupId>com.</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.10.0</version>
</dependency>
字段映射
在⾃定义对象中添加如下注解
@JsonProperty("userPhone")//实现对userPhone的映射
@JsonAlias("phone")//映射别名实现phone对userPhone的映射
private String userPhone;
这样json对象可以实现对对前后端json数据不同字段的映射。
使⽤⽰例
1.结合@RequestBody⾃动映射
这是controller层中的注册相关控制代码
@RequestMapping(path ="/registered",produces ="application/json;charset=UTF-8")
public@ResponseBody Object registered(@RequestBody User user)
//user处理代码
return obj;
}
下⾯是前端html的form表单userPhone的input框
<div class="layui-input-block">
<input type="text" name="userPhone" id="userPhone"
required lay-verify="required" placeholder="请输⼊⼿机号"
autocomplete="off"class="layui-input">
</div>
发送数据是根据name属性来定义字段名称的,如果在⾃定义对象中添加如下注解
@JsonProperty("userPhone")//实现对userPhone的映射
@JsonAlias("phone")//映射别名实现phone对userPhone的映射
private String userPhone;
此时name属性可以写成userPhone或userphone都能⾃动实现java⾃定义类型和json类型的转换2.调⽤Jackson内置的⽅法进⾏映射
writeValueAsString()将json对象转化成json类型的字符串
readValue()将json类型的字符串转化成指定的java⾃定义类型对象
使⽤⽅
//获取映射对象
ObjectMapper mapper =new ObjectMapper();
//将json对象转化成字符串
String jsonStr = mapper.writeValueAsString(userJson);
//将json类型的字符串转化成指定的java⾃定义类型对象参数⼀传字符参数⼆传指定的类型的class
Object Obj = adValue(jsonStr,user.class);
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论