Volley和GSON反序列化

时间:2018-07-29 15:28:10

标签: android gson android-volley

我遇到一个奇怪的问题,我不知道为什么。我正在尝试将json数据从http请求转换为对象。这是我到目前为止所做的。

课程:

public class VersionInfo {
    @SerializedName("build")
    private String build;

    public VersionInfo(String v){
        this.build = v;
    }
}

排球要求:

private void getServerInfo() {
        RequestQueue queue = Volley.newRequestQueue(this);
        String url = "xxxxxx";

        StringRequest stringRequest = new StringRequest(Request.Method.GET, url,
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {
                        VersionInfo vi = gson.fromJson(response,VersionInfo.class);
                        versionInfo.setText("vi is not working as an object");

                    }
                }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                versionInfo.setText(error.getMessage());
            }
        });

        queue.add(stringRequest);
    }

请求是这样的php脚本:

 <?php
    $obj = array(
        'build' => 'Version: 1.0.0 alpha build'
    );

    $json = json_encode($obj);
    echo $json;
 ?>

这是调试显示给我的:

enter image description here

我的问题是:为什么反序列化不会用给定的文本填充vi对象?

1 个答案:

答案 0 :(得分:0)

根据您的response中的screenshot字符串,您的VersionInfo应该是

 public class VersionInfo {

@SerializedName("vr")
@Expose
private String vr;

public String getVr() {
return vr;
}

public void setVr(String vr) {
this.vr = vr;
}

}