jackson与fastjson的使用
jackson与fastjson的使用
jackson
导包
<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.10.1</version> </dependency>
处理乱码
json解析
//@Controller @RestController//不经过视图解析器,return字符串 public class UserController { @RequestMapping("/json1") //@ResponseBody//不经过视图解析器,return字符串 public String json1() throws JsonProcessingException { //jackson - ObjectMapper ObjectMapper mapper = new ObjectMapper(); User user = new User("大头儿子", 6, "男"); String string = mapper.writeValueAsString(user); return string; } @RequestMapping("/json2") //队列 public String json2() throws JsonProcessingException { ObjectMapper mapper = new ObjectMapper(); List<User> userList = new ArrayList<User>(); User user1 = new User("大头儿子", 6, "男"); User user2 = new User("也是大头儿子", 6, "男"); User user3 = new User("还是大头儿子", 6, "男"); User user4 = new User("不是大头儿子", 6, "女"); userList.add(user1); userList.add(user2); userList.add(user3); userList.add(user4); String users = mapper.writeValueAsString(userList); return users; } @RequestMapping("/json3") //时间 public String json3() throws JsonProcessingException { ObjectMapper mapper = new ObjectMapper(); Date oridate = new Date(); //通过java格式化时间 SimpleDateFormat format = new SimpleDateFormat("yy-MM-dd HH:mm:ss"); String date = format.format(oridate); String obj = mapper.writeValueAsString(date); return obj; } @RequestMapping("/json4") public String json4() throws JsonProcessingException { ObjectMapper mapper = new ObjectMapper(); Date oridate = new Date(); //不使用时间戳的方式 mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false); //自定义时间格式 SimpleDateFormat format = new SimpleDateFormat("yy-MM-dd HH:mm:ss"); mapper.setDateFormat(format); String obj = mapper.writeValueAsString(oridate); return obj; } @RequestMapping("/json5") public String json5() throws JsonProcessingException { Date oridate = new Date(); //使用自建工具类 String obj = JsonUtils.getJson(oridate); return obj; } @RequestMapping("/json6") //队列 public String json6() throws JsonProcessingException { List<User> userList = new ArrayList<User>(); User user1 = new User("大头儿子", 6, "男"); User user2 = new User("也是大头儿子", 6, "男"); User user3 = new User("还是大头儿子", 6, "男"); User user4 = new User("不是大头儿子", 6, "女"); userList.add(user1); userList.add(user2); userList.add(user3); userList.add(user4); //使用自建工具类 String users = JsonUtils.getJson(userList); return users; }
自建工具类
public class JsonUtils { public static String getJson(Object object) { return getJson(object, "yy-MM-dd HH:mm:ss"); } public static String getJson(Object object, String dateformat) { ObjectMapper mapper = new ObjectMapper(); mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false); SimpleDateFormat format = new SimpleDateFormat(dateformat); mapper.setDateFormat(format); try { return mapper.writeValueAsString(object); } catch (JsonProcessingException e) { e.printStackTrace(); } return null; } }
fashjson
导包
<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.62</version> </dependency>
json解析
@RequestMapping("/json7") //队列 public String json7() throws JsonProcessingException { List<User> userList = new ArrayList<User>(); User user1 = new User("大头儿子", 6, "男"); User user2 = new User("也是大头儿子", 6, "男"); User user3 = new User("还是大头儿子", 6, "男"); User user4 = new User("不是大头儿子", 6, "女"); userList.add(user1); userList.add(user2); userList.add(user3); userList.add(user4); String users = JSON.toJSONString(userList); return users; }
更多
System.out.println("*******Java对象 转 JSON字符串*******"); String str1 = JSON.toJSONString(users); System.out.println("JSON.toJSONString(list)==>"+str1); String str2 = JSON.toJSONString(user1); System.out.println("JSON.toJSONString(user1)==>"+str2); System.out.println("\n****** JSON字符串 转 Java对象*******"); User jp_user1=JSON.parseObject(str2,User.class); System.out.println("JSON.parseObject(str2,User.class)==>"+jp_user1); System.out.println("\n****** Java对象 转 JSON对象 ******"); JSONObject jsonObject1 = (JSONObject) JSON.toJSON(user2); System.out.println("(JSONObject) JSON.toJSON(user2)==>"+jsonObject1.getString("name")); System.out.println("\n****** JSON对象 转 Java对象 ******"); User to_java_user = JSON.toJavaObject(jsonObject1, User.class); System.out.println("JSON.toJavaObject(jsonObject1, User.class)==>"+to_java_user);