字符串转Java对象对象为空什么原因,转json对象都正常!

salut 2020-04-02 10:16:16


--DBConnect.java
package com.cmcc.testUtil;

public class DBConnect {
private String driv;
private String url;
private String name;
private String psw;

public DBConnect(String d,String u,String n,String p){
driv = d;
url = u;
name = n;
psw = p;
}

public String getDriv() {
return driv;
}

public void setDriv(String driv) {
this.driv = driv;
}

public String getUrl() {
return url;
}

public void setUrl(String url) {
this.url = url;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getPsw() {
return psw;
}

public void setPsw(String psw) {
this.psw = psw;
}

@Override
public String toString() {
return "DBConnect{" +
"driv='" + driv + '\'' +
", url='" + url + '\'' +
", name='" + name + '\'' +
", psw='" + psw + '\'' +
'}';
}
}


--------------GetDBConn.java
package com.cmcc.testUtil;

import com.alibaba.fastjson.JSONObject;
import com.cmcc.common.constant.Constants;
import com.cmcc.common.utils.DESUtil;

public class GetDBConn {
public static void getDBConn() {
String drive = "oracle.jdbc.driver.OracleDriver";
String url = "jdbc:oracle:thin:@localhost:1521:XE";
String username = "mms";
String password = "mms";

DBConnect conn = new DBConnect(drive,url,username,password);

//展示打印字段
String json = JSONObject.toJSONString(conn);
System.out.println("对象转json串:[" + json + "]");

//对字符串加密
String mi = DESUtil.jiami(json, Constants.DB_CONN_KEY);
System.out.println("加密:[" + mi + "]");

//对字符串解密
String ming = DESUtil.jiemi(mi, Constants.DB_CONN_KEY);
System.out.println("解密:[" + ming + "]");

//解密字符串转对象


//解密串转json对象
JSONObject jobj = JSONObject.parseObject(ming);
System.out.println("转json对象:[drive=" + jobj.getString("driv") + ",url="+jobj.getString("url")+",username="+jobj.getString("name")+",password="+jobj.getString("psw")+"]");

DBConnect db = JSONObject.toJavaObject(jobj, DBConnect.class);
System.out.println("转对象:["+db.toString()+"]");
}

public static void main(String[] args) {
getDBConn();
}
}




------------结果:
对象转json串:[{"driv":"oracle.jdbc.driver.OracleDriver","name":"mms","psw":"mms","url":"jdbc:oracle:thin:@localhost:1521:XE"}]
加密:[Zmecydh8aDAoINl0emY0c3TuKnGtJpMhMCPrJl7r3yxEcIinJlPxn9i+8B78RI2kRmkJWl8U/rW29xXXg/uiK67YXRrYAI9EIO4LcIVlbuLa/bluouw3IZwj8zV2uQGO5ztEmq62/JPV2SEdcE4UCg==]
解密:[{"driv":"oracle.jdbc.driver.OracleDriver","name":"mms","psw":"mms","url":"jdbc:oracle:thin:@localhost:1521:XE"}]
转json对象:[drive=oracle.jdbc.driver.OracleDriver,url=jdbc:oracle:thin:@localhost:1521:XE,username=mms,password=mms]
转对象:[DBConnect{driv='null', url='null', name='null', psw='null'}]
...全文
267 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
qqvb 2020-04-02
  • 打赏
  • 举报
回复
为什么转json后没有引号了?这样就是json格式了,为什么解密后还要转为json?为什么不直接JSONObjecdt.parse()?
qqvb 2020-04-02
  • 打赏
  • 举报
回复
你转json对像之后为什么引号不见了?
nayi_224 2020-04-02
  • 打赏
  • 举报
回复
直接用你的代码会报错,改完后也没有会出现null的地方
package yyst.myTest.test.lt20;

import com.alibaba.fastjson.JSONObject;

public class Test01 {
	
	public static void main(String[] args) {
		GetDBConn.getDBConn();
	}
	
}

class DBConnect {
    private String driv;
    private String url;
    private String name;
    private String psw;
 
    public DBConnect() {
		// TODO Auto-generated constructor stub
	}
    
    public DBConnect(String d,String u,String n,String p){
        driv = d;
        url = u;
        name = n;
        psw = p;
    }
 
    public String getDriv() {
        return driv;
    }
 
    public void setDriv(String driv) {
        this.driv = driv;
    }
 
    public String getUrl() {
        return url;
    }
 
    public void setUrl(String url) {
        this.url = url;
    }
 
    public String getName() {
        return name;
    }
 
    public void setName(String name) {
        this.name = name;
    }
 
    public String getPsw() {
        return psw;
    }
 
    public void setPsw(String psw) {
        this.psw = psw;
    }
 
    @Override
    public String toString() {
        return "DBConnect{" +
                "driv='" + driv + '\'' +
                ", url='" + url + '\'' +
                ", name='" + name + '\'' +
                ", psw='" + psw + '\'' +
                '}';
    }
}

class GetDBConn {
    public static void getDBConn() {
        String drive = "oracle.jdbc.driver.OracleDriver";
        String url = "jdbc:oracle:thin:@localhost:1521:XE";
        String username = "mms";
        String password = "mms";
 
        DBConnect conn = new DBConnect(drive,url,username,password);
 
        //展示打印字段
        String json = JSONObject.toJSONString(conn);
        System.out.println("对象转json串:[" + json + "]");
 
        //对字符串加密
        String mi = "mi";
        System.out.println("加密:[" + mi + "]");
 
        //对字符串解密
        String ming = "ming";
        System.out.println("解密:[" + ming + "]");
 
        //解密字符串转对象
 
 
        //解密串转json对象
        JSONObject jobj = JSONObject.parseObject(json);
        System.out.println("转json对象:[drive=" + jobj.getString("driv") + ",url="+jobj.getString("url")+",username="+jobj.getString("name")+",password="+jobj.getString("psw")+"]");
 
        DBConnect db = JSONObject.toJavaObject(jobj, DBConnect.class);
        System.out.println("转对象:["+db.toString()+"]");
    }

//    public static void main(String[] args) {
//        getDBConn();
//    }
}

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧