Retrofit2如何正确使用json?

zphenhs4  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(357)

我的json字符串如下所示:

header('Content-type:text/json');
    if (mysql_num_rows ( $result ) != 0) {
        $row = mysql_fetch_assoc($result);
        $jobj=new stdclass();
        foreach($row as $key=>$value){
            $jobj->$key=$value;
        }
    }
    echo json_encode($jobj,JSON_NUMERIC_CHECK);

在浏览器中,结果是 {"user_id":1,"step":1,"status":1} .
我的javabean是:

public class Login {
    private int user_id;
    private int status;
    private int step;

    public Login(int user_id, int status, int step) {
        this.user_id = user_id;
        this.status = status;
        this.step = step;
    }
}

设置…获取…等
当我使用2:

instance = new Retrofit.Builder()
                .client(okHttpClient)
                .baseUrl("http://192.168.1.108/")
                .addConverterFactory(GsonConverterFactory.create())
                .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
                .build();

我明白了
android.content.res.resources$notfoundexception:字符串资源id#0x1
当我将javabean更改为:

public class Login {
    private String user_id;
    private String status;
    private String step;

}

我得到了正确的结果。但我要的是数字,不是字符串。怎么做?

ua4mk5z4

ua4mk5z41#

问题不在于改型或json。
尝试将文本设置为 TextView .
如果向方法提供了整数 setTextTextView ,它查找字符串资源,如果找不到则崩溃。
所以,你应该先把 IntegerString 在把它放进 TextView .
用这样的方法:

textView.setText(String.valueOf(login.user_id));

相关问题