Jackson的使用
1、在pom.xml中导入依赖
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.10.0</version>
</dependency>
Jackson乱码在springmvc-servlet.xml配置:
把对象转换成字符串:
package com.lyr.controller;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.lyr.pojo.User;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import java.text.SimpleDateFormat;
import java.util.Date;
//@Controller
@RestController //相当于@Controller+@ResponseBody
public class jsonController {
@RequestMapping("/j1")
//@ResponseBody //不走视图解析器,返回字符串
public String json1() throws JsonProcessingException {
//jackson
ObjectMapper mapper = new ObjectMapper();
User user = new User(1,"lyr","123456");
String str = mapper.writeValueAsString(user);
return str;
}
}
效果:
把时间转换成字符串:
package com.lyr.controller;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.lyr.pojo.User;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import java.text.SimpleDateFormat;
import java.util.Date;
//@Controller
@RestController //相当于@Controller+@ResponseBody
public class jsonController {
@RequestMapping("/j2")
public String json2() throws JsonProcessingException {
ObjectMapper mapper = new ObjectMapper();
//java中转换时间
// Date date = new Date();
// SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// return mapper.writeValueAsString(sdf.format(date));
//使用jackson
//不使用时间戳的方式
mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS,false);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
mapper.setDateFormat(sdf);
Date date = new Date();
return mapper.writeValueAsString(date);
}
}
效果:
Fastjson的使用
1、导入依赖:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.66</version>
</dependency>
除了依赖不同其他配置和Jackson一样
使用:
package com.lyr.controller;
import com.alibaba.fastjson.JSON;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.lyr.pojo.User;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
//@Controller
@RestController //相当于@Controller+@ResponseBody
public class jsonController {
@RequestMapping("/j3")
public String json3(){
List<User> userList = new ArrayList<User>();
User user1 = new User(1,"lyr1","123456");
User user2 = new User(2,"lyr1","123456");
User user3 = new User(3,"lyr1","123456");
userList.add(user1);
userList.add(user2);
userList.add(user3);
String str = JSON.toJSONString(userList);
return str;
}
}
效果: