为了账号安全,请及时绑定邮箱和手机立即绑定

改造 - 如何从 json 对象获得响应

改造 - 如何从 json 对象获得响应

HUWWW 2021-12-30 17:14:37
我需要在链接中获取 json 对象http://link/json和我的 json 评论{"as":"AS48159 Telecommunication Infrastructure Company","city":"Ahvāz","country":"Iran","countryCode":"IR","isp":"Information Technology Company (ITC)","lat":31.3167,"lon":48.6844,"org":"khouzestan Telecommunication co","query":"2.185.10.22","region":"","regionName":"Khuzestan","status":"success","timezone":"Asia/Tehran","zip":""}但我在 activitymain.java 中出错Incompatible types.Required:retrofit2.Call<ir.hmotamed.myipnet.Queryip>Found:ir.hmotamed.myipnet.Queryip我的序列化(Queryip.java)public class Queryip {    @SerializedName("status")    private String status;    @SerializedName("query")    private String query;    @SerializedName("country")    private String country;    @SerializedName("countryCode")    private String countryCode;    @SerializedName("city")    private String city;    @SerializedName("timezone")    private String timezone;    @SerializedName("isp")    private String isp;我的界面( ApiService.java )import retrofit2.Call;import retrofit2.http.GET;public interface ApiService {    @GET("json")    Call<Queryip> getQueryip();}和 mu activitymain.java 其public class ActivityMain extends AppCompatActivity {    Call<Queryip> queryip;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        ApiService service=ApiClient.getClient().create(ApiService.class);        Call<Queryip> call=service.getQueryip();        call.enqueue(new Callback<Queryip>() {            @Override            public void onResponse(Call<Queryip> Call, Response<Queryip> response) {                queryip=response.body(); // this line show error                Toast.makeText(ActivityMain.this, "ok", Toast.LENGTH_SHORT).show();            }我需要帮助修复错误并获取对象以显示文本视图坦克以寻求帮助!
查看完整描述

3 回答

?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

response.body(); 可以投射到您的 POJO 类,即 Queryip

您将其分配给引用Call类。这就是这里的问题

尝试 :

Queryip q = (Queryip)response.body()


查看完整回答
反对 回复 2021-12-30
?
千万里不及你

TA贡献1784条经验 获得超9个赞

问题是您创建了 Call 对象

只需创建如下对象

Queryip queryip

并在成功

queryip=response.body();


查看完整回答
反对 回复 2021-12-30
?
慕沐林林

TA贡献2016条经验 获得超9个赞

只需在activitymain.java 中将全局对象类型从Call 更改为Queryip,然后在onResponse 中:您可以访问queryip=response.body();


查看完整回答
反对 回复 2021-12-30
  • 3 回答
  • 0 关注
  • 239 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号