1

使用 java 启动器检查远程服务器是否有可用的最新软件版本。服务器响应一些 JSON 数据,我使用 gson 将其转换为对象。

但是,数据总是null如此,我不知道为什么。我已经做了十几次了,没有问题。

gson 类将使用:

public class VersionResponse {
    public String currentVersion;
}

编码。我采用了一个示例 json 字符串来避免远程服务器文件出现任何问题。这是有效的json,我已经验证过了。

Gson gson = new GsonBuilder().create();
remoteVersionResponse = gson.fromJson("{\"currentVersion\":\"v.0.0.1-96-g48c1f4d\"}", VersionResponse.class);

if( remoteVersionResponse != null ){
    System.out.println("Object: " + remoteVersionResponse.currentVersion);
}

对象的currentVersion属性总是显示null

我觉得我在这里错过了一些非常愚蠢的东西......

4

3 回答 3

0
public class VersionResponse {
    public String currentVersion;

    public void setCurrentVersion(String version){
        this.currentVersion = version;
    }  

    public String getCurrentVersion(){
       return this.currentVersion;
    } }
于 2013-11-15T01:59:33.043 回答
0

发现了问题……我们在构建过程中的混淆破坏了 gson 正确存储值的能力。

于 2013-11-15T02:24:10.763 回答
-1

您的 VersionResponse 类缺少 getter 和 setter

公共类 VersionResponse { 公共字符串 currentVersion;

public void setCurrentVersion(String version){
    this.currentVersion = version;
}  

public String getCurrentVersion(){
    return this.currentVersion;
}

}

于 2013-11-15T01:56:31.060 回答