Java 实现 对象和转字符串之间的互转 (json格式)
添加依赖:
<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.9.7</version> </dependency> <dependency> <groupId>com.squareup.retrofit2</groupId> <artifactId>converter-gson</artifactId> <version>2.5.0</version> </dependency>
下面直接上代码:
实体类: 注意实体类想要序列化一定要实现 Serializable 接口 否则不能通过
package com.nf147.sim.entity; import java.io.Serializable; public class News implements Serializable { private int id; private String title; private String body; public News() { } public News(int id, String title, String body) { this.id = id; this.title = title; this.body = body; } public News(String title, String body) { this.title = title; this.body = body; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getBody() { return body; } public void setBody(String body) { this.body = body; } @Override public String toString() { return "News{" + "id=" + id + ", title='" + title + '\'' + ", body='" + body + '\'' + '}'; } }
public void toJosn() throws Exception { ObjectMapper objectMapper = new ObjectMapper(); //json // java 对象 -> json 字符串 // json 字符串 -> java 对象 News news = new News("kudankuaidaole", "放假通知"); String s = objectMapper.writeValueAsString(news); System.out.println("对象转字符串:"+s); System.out.println("============="); List<News> newsList = Arrays.asList( new News("yuandan", "放假"), new News("春节", "快来了") ); //第一种方式 String newslistStr = objectMapper.writeValueAsString(newsList); News[] newsArray = objectMapper.readValue(newslistStr, News[].class); List<News> newsList1 = objectMapper.readValue(newslistStr, new TypeReference<List<News>>() { }); System.out.println(); System.out.println("字符串转对象:"+newsList1); //第二种方式 List<News> newsList2 = new Gson().fromJson(newslistStr, new TypeToken<List<News>>() {}.getType()); //使用gson System.out.println("字符串转对象:"+newsList2); }
结果: