gpt4 book ai didi

java - retorfit2 如何让这个 json 正确?

转载 作者:行者123 更新时间:2023-11-29 18:37:45 25 4
gpt4 key购买 nike

我的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;
}
}

设置...获取...等

当我使用 retrofit2 时:

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

我明白了

android.content.res.Resources$NotFoundException: String resource ID #0x1

当我将 JavaBean 更改为:

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


}

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

最佳答案

问题不在于 Retrofit 或 JSON。

当您尝试将文本设置为 TextView 时发生 Resources$NotFoundException。

如果将整数提供给 TextView 的方法 setText,它会查找字符串资源,如果找不到则崩溃。

因此,您应该先将 Integer 转换为 String,然后再将其设置到 TextView 中。

使用这样的东西:

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

关于java - retorfit2 如何让这个 json 正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53662998/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com