我一直试图通过openweathermaps从API获得json响应,但我似乎无法让它与volley或Reformation一起工作,我将发布volley和Reformation函数,以及我在这两个函数和json消息本身上得到的错误
这是我试图捕获的json响应http://samples.openweathermap.org/data/2.5/find?lat=55.5
这是截取代码“令人惊讶的是,我确实得到了我正在寻找的json的响应,但我在截取错误消息上得到了它”
RequestQueue requestQueue = Volley.newRequestQueue(getApplicationContext());
// Initialize a new JsonArrayRequest instance
JsonArrayRequest jsonArrayRequest = new JsonArrayRequest(
Request.Method.GET,
mJSONURLString,
null,
new Response.Listener<JSONArray>(){
@Override
public void onResponse(JSONArray response) {
textView.setText(response.toString());
try{
for(int i=0;i<response.length();i++){
}
}catch (Exception e){
e.printStackTrace();
}
}
},
new Response.ErrorListener(){
@Override
public void onErrorResponse(VolleyError error){
// this is where i get my json "how?"
System.out.println(error);
}
}
);
requestQueue.add(jsonArrayRequest);
这是一个完全不同的项目的改造代码“我正在测试两个atm”
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(url)
.addConverterFactory(GsonConverterFactory.create())
.build();
CitiesArrayAPI service = retrofit.create(CitiesArrayAPI.class);
Call<List<Cities>> call = service.loadCitiesFromAPI();
call.enqueue(new Callback<List<Cities>>() {
@Override
public void onResponse(Response<List<Cities>> response, Retrofit retrofit) {
System.out.println("test");
try {
List<Cities> cities = response.body();
for (int i = 0; i < cities.size(); i++) {
}
} catch (Exception e) {
Log.d("onResponse", "There is an error");
e.printStackTrace();
}
}
@Override
public void onFailure(Throwable t) {
Log.d("onFailure", t.toString());
}
});
这是arrayapi的改装界面
public interface CitiesArrayAPI {
@GET("data/2.5/find?lat=55.5&lon=37.5&cnt=5&appid=b6907d289e10d714a6e88b30761fae22")
Call<List<Cities>> loadCitiesFromAPI();
}
这是我从改装中得到的错误,适用于onFailure方法
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 2 path $
您要解析的json肯定不是List
下面是根对象的外观
public class YouRootObject {
@SerializedName("message")
private String message;
@SerializedName("cod")
private String cod;
@SerializedName("count")
private Integer count;
@SerializedName("list")
private List<City> cities;
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public String getCod() {
return cod;
}
public void setCod(String cod) {
this.cod = cod;
}
public Integer getCount() {
return count;
}
public void setCount(Integer count) {
this.count = count;
}
public List<City> getList() {
return cities;
}
public void setList(List<City> cities) {
this.cities = cities;
}
}
而不是
i、 e.
呼叫
问题是,您希望返回一个对象的列表,所以请将改装接口更改为返回对象而不是列表
public interface CitiesArrayAPI {
@GET("data/2.5/find?lat=55.5&lon=37.5&cnt=5&appid=b6907d289e10d714a6e88b30761fae22")
Call<Cities> loadCitiesFromAPI();
}
添加一个名为Coord的类
public class Coord {
@Expose
@SerializedName("lat")
private double lat;
@Expose
@SerializedName("lng")
private double lng;
private double getLat(){
return lat;
}
private double getLng(){
return lng;
}
}
创建对象城市,它有一个coord对象
public class City {
@Expose
@SerializedName("coord")
private Coord coord;
private Coord getCoord(){
return coord;
}
}
和类城市,这是一个列表,这个对象是在改造接口中调用的
public class Cities {
@SerializedName("cities")
private List<City> cities;
}
然后在回应中你可以打电话
response.body.getCoord().getlat();
来自API的Im有两个不同的响应。然后我判断对象,但是我如何将消息的内容返回到字符串呢?下面的示例返回Exception: Json响应: Json响应: 模型:
我正在尝试更新具有父状态的道具的子组件。当用将父级的状态更改为my knowlage时,chlid应该重新执行。但是,当child位于数组中时,rerender不会Occure。我怎么才能修好?提前谢了。 我的app功能:
我有一个控制器endpoint,返回字符串列表。我有代码在我的转换层,取代了这个页面的字符串。(Page是我写过的一个类。)我如何告诉Spring医生来处理这个。默认情况下,springdoc将响应声明为字符串的JSON数组。 我可以让它替换我的回答中的字段列表,如下所示: 但我不想让它那样做。事实上,页面有一个列表字段,因此它会变成一个页面字段,而页面字段本身也有一个页面字段,依此类推。 使用s
问题内容: 是否可以在PHP中处理来自AJAX请求的响应?我不是一个真正的JS开发人员,所以我正在用这个开发人员。 我有点黑了: }); 该功能似乎可以正常运行,它会向我发出有关正确数据的警报。 我需要能够将此输出给用户,以便可读。我发现很多指南都描述了替换数据,但就目前而言,直到选择child_id之前,没有数据。.然后我希望它以可读的方式显示上述数据。 我不知道如何开始使用视图文件(php)中
我可以很容易地得到消息,但我不能从响应中得到“他”数组。 下面是我的数据模型类 这就是我向服务器发送请求的方式:
我用php帖子获取电报群的用户数 响应是数组: 我如何访问我尝试的结果值 echo $data 1[19];这只给指数位置值谢谢