使用ObjectMapper进行json转object
1,配置pom文件
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
</dependency>
2,配置对应的对象实体类
省略了其中的set和get文件,使用时,自己添加就行
package com.qicke.pojo;
import java.io.Serializable;
public class Content implements Serializable{
private static final long serialVersionUID = 1L;
private ContentData contentdata;
private String name;
private Integer age;
private String phone;
}
ContentData 为json字符串中的对象
package com.qicke.pojo;
import java.io.Serializable;
public class ContentData implements Serializable{
private static final long serialVersionUID = 1L;
private String cont;
}
3,controller层接收参数
package com.qicke.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.qicke.pojo.Content;
import com.qicke.utils.ResponseUtil;
@RequestMapping("/objectMapper")
@Controller
public class ObjectMapperController {
@RequestMapping("/jsonChangeObject")
@ResponseBody
public Object ObjectMapper(String jsonString){
ObjectMapper objectMapper = new com.fasterxml.jackson.databind.ObjectMapper();
Content readValue=new Content();
try {
readValue = objectMapper.readValue(jsonString, Content.class);
} catch (Exception e) {
e.printStackTrace();
return ResponseUtil.serious();
}
System.err.println(readValue.getContentData().getCont());
return ResponseUtil.ok(readValue);
}
}
ResponseUtil为返回值的工具类
package com.qicke.utils;
import java.util.HashMap;
import java.util.Map;
public class ResponseUtil {
public static Object ok() {
Map<String, Object> obj = new HashMap<String, Object>();
obj.put("errno", 0);
obj.put("errmsg", "成功");
return obj;
}
public static Object ok(Object data) {
Map<String, Object> obj = new HashMap<String, Object>();
obj.put("errno", 0);
obj.put("errmsg", "成功");
obj.put("data", data);
return obj;
}
public static Object ok(String errmsg, Object data) {
Map<String, Object> obj = new HashMap<String, Object>();
obj.put("errno", 0);
obj.put("errmsg", errmsg);
obj.put("data", data);
return obj;
}
public static Object fail() {
Map<String, Object> obj = new HashMap<String, Object>();
obj.put("errno", -1);
obj.put("errmsg", "错误");
return obj;
}
public static Object fail(int errno, String errmsg) {
Map<String, Object> obj = new HashMap<String, Object>();
obj.put("errno", errno);
obj.put("errmsg", errmsg);
return obj;
}
public static Object badArgument() {
return fail(401, "参数不对");
}
public static Object badArgumentValue() {
return fail(402, "参数值不对");
}
public static Object unlogin() {
return fail(501, "请登录");
}
public static Object serious() {
return fail(502, "系统内部错误");
}
public static Object unsupport() {
return fail(503, "业务不支持");
}
public static Object updatedDateExpired() {
return fail(504, "更新数据已经失效");
}
public static Object updatedDataFailed() {
return fail(505, "更新数据失败");
}
public static Object unauthz() {
return fail(506, "无操作权限");
}
}
测试数据
{"dataContent":{"cont":"测试json数据转对象类型"},"age":18,"name":"zhangsan","phone":"15134563849"}
测试结果返回值
{
"errno": 0,
"data": {
"dataContent": {
"cont": "测试json数据转对象类型"
},
"name": "zhangsan",
"age": 18,
"phone": "15134563849"
},
"errmsg": "成功"
}