这里用User类来举例
class User {
private String username;
private String password;
public User() { }
public User(String username, String password) {
this.username = username;
this.password = password;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "User{" +
"username='" + username + '\'' +
", password='" + password + '\'' +
'}';
}
}
调用阿里的fastjson工具类来转换
import com.alibaba.fastjson.JSONObject;
import org.junit.Test;
import org.springframework.boot.test.context.SpringBootTest;
import java.util.HashMap;
@SpringBootTest
public class JSONTest {
@Test //实体对象 <-> JSONObject对象
public void objToJsonObj() {
User user = new User("admin", "123");
//实体对象先转json字符串
String jsonString = JSONObject.toJSONString(user);
//json字符串再转JSONObject对象
JSONObject jsonObject = JSONObject.parseObject(jsonString);
//JSONObject对象 -> 实体对象
User object = JSONObject.toJavaObject(jsonObject, User.class);
System.out.println("实体对象:" + object);
System.out.println("JSONObject对象:"+jsonObject);
System.out.println("json格式字符串:" + jsonString);
}
@Test //实体对象 <-> json格式字符串
public void objToJsonString() {
User user = new User("admin", "123");
//实体对象 -> json格式字符串
String jsonString = JSONObject.toJSONString(user);
//json格式字符串 -> 实体对象
User object = JSONObject.parseObject(jsonString, User.class);
System.out.println("实体对象:" + object);
System.out.println("json格式字符串:" + jsonString);
}
@Test //JSONObject对象 <-> json格式字符串
public void jsonObjToJsonString() {
HashMap<String, Object> map = new HashMap<>();
map.put("username", "admin");
map.put("password", "123456");
JSONObject jsonObject = new JSONObject(map);
//JSONObject对象 -> json格式字符串
String jsonString = JSONObject.toJSONString(jsonObject);
//json格式字符串 -> JSONObject对象
JSONObject jsonObj = JSONObject.parseObject(jsonString);
System.out.println("JSONObject对象" + jsonObj);
System.out.println("json格式字符串" + jsonString);
}
}
总结:
- 实体对象转json字符串
String jsonString = JSONObject.toJSONString(user);
- json字符串转实体对象
User user = JSONObject.parseObject(jsonString, User.class);
- JSONObject对象转json字符串
String jsonString = JSONObject.toJSONString(jsonObject);
- json字符串转JSONObject对象
JSONObject jsonObject = JSONObject.parseObject(jsonString);
- JSONObject对象转实体对象
User user = JSONObject.toJavaObject(jsonObject, User.class);
- 实体对象转JSONObject对象 需要借用json字符串再转换
注意:这里对象中的属性只是String类型