【发布时间】:2011-02-28 17:30:24
【问题描述】:
我正在尝试使用 gson 反序列化 json 字符串。这是我的代码
static class ReturnPramaters {
public ReturnPramaters()
{
}
public Boolean LoginFailed = true;
public String LoginFailedReason = "";
public String AppPath = "";
public String WorkstiaonGuid = "";
public String RDPUsername = "";
public String RDPPassword = "";
public int StartMode = -1;
public String ServerAddress = "";
}
public static void main(String[] args) {
String json = sendGetRequest("http://example.com:80/Rdp/json/login","username=test&password=1234");
Gson gson = new Gson();
ReturnPramaters para = gson.fromJson(json, ReturnPramaters.class);
if(para.LoginFailed)
JOptionPane.showMessageDialog(null, para.LoginFailedReason, "Login Failed",JOptionPane.ERROR_MESSAGE);
else {
//...
}
}
这是我从 get 请求返回的 json 字符串。
"{"d":{"__type":"ReturnPramaters:#ServerApp","AppPath":"C:\\Remote Desktop Manager\\Launcher\\Launcher.exe","LoginFailed":false,"LoginFailedReason":null,"RDPPassword":"XjE2QAL","RDPUsername":"test09","ServerAddress":"example.com","StartMode":1,"WorkstiaonGuid":"96175701-f72a-44e9-8ee1-6eb756293654"}}"
但是在ReturnPramaters para = gson.fromJson(json, ReturnPramaters.class); para 之后仍然有所有未初始化的值。导致此失败的原因是什么?
【问题讨论】: