我需要在链接中找到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 its
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();
}
@Override
public void onFailure(Call<Queryip> Call, Throwable t) {
Toast.makeText(ActivityMain.this, "error", Toast.LENGTH_SHORT).show();
}
});
我需要帮助修复错误和获取对象显示文本视图坦克为您的帮助!
发布于 2018-11-05 07:35:36
可以将response.body();转换为POJO类,即Queryip
您将它分配给引用调用类。这就是问题所在
试着:
Queryip q = (Queryip)response.body()
发布于 2018-11-05 07:50:25
问题是创建Call对象
只需如下所示创建对象
Queryip queryip在onSuccess中
queryip=response.body();发布于 2018-11-05 08:00:56
这是你的片段错的地方。
您的全局声明变量queryip为Call<Queryip>类型。
Call<Queryip> queryip;现在,在api中,您正在尝试用queryip分配response.body(),这就是您得到错误的原因。
response.body()将返回Queryip类型的对象,但变量的类型为Call<Queryip>。
因此,只需从以下位置重构变量声明:
Call<Queryip> queryip;至
Queryip queryip;就是这样。
https://stackoverflow.com/questions/53150054
复制相似问题