Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Can';t使用Volley库获取JSON_Android_Json_Android Volley - Fatal编程技术网

Android Can';t使用Volley库获取JSON

Android Can';t使用Volley库获取JSON,android,json,android-volley,Android,Json,Android Volley,我正在使用Volley库获取JSON。我无法使用运行在Android2.3上的emulator加载JSON,其他版本都可以。我不知道为什么它不能获取JSON,特别是在2.3设备上 JSON对象请求: private void makeJsonObjectRequest(){ pDialog=新建进度对话框(MainActivity.this); setMessage(“请稍候…”); pDialog.setCancelable(假); showpDialog(); final JsonObjec

我正在使用Volley库获取JSON。我无法使用运行在Android2.3上的emulator加载JSON,其他版本都可以。我不知道为什么它不能获取JSON,特别是在2.3设备上

JSON对象请求:
private void makeJsonObjectRequest(){
pDialog=新建进度对话框(MainActivity.this);
setMessage(“请稍候…”);
pDialog.setCancelable(假);
showpDialog();
final JsonObjectRequest JSONObjectReq=新的JsonObjectRequest(Request.Method.GET,
urlJsonObj,null,新响应。侦听器(){
@凌驾
公共void onResponse(JSONObject响应){
试一试{
extractJSONArray(response.getJSONArray(“住宿”),“住宿”);
}捕获(JSONException e){
e、 printStackTrace();
}
adapter.notifyDataSetChanged();
hidepDialog();
}
},new Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
Log.d(“Error:,Error.getCause().toString());
错误。printStackTrace();
hidepDialog();
}
});
AppController.getInstance().addToRequestQueue(JSONOBJEQ);
}

有什么想法吗?好的,首先使用Gson图书馆,它会让你的生活更轻松:

然后把你的回答记下来,例如

public class Accommodation {
    public String id;
    public String icon;
    public String name;
    public String nameEn;
    public String type;
    public String fotoLinks;
    public String address;
    public String workHours;
    public String description;
    public String descriptionEn;
    public String votes;
    public String voters;
    public String number;
    public String email;
    public String latitude;
    public String longitude;
}
现在,组合所有pojo类以匹配您的服务器响应:

public class ServerResponse {
    public List<Accommodation> Accommodation;
    public List<CashMachines> Cash_machines; // assuming you have CashMachines as well like above
}
公共类服务器响应{
公共列表。请确保从下载gson jar文件


请注意,现有代码将立即开始使用此url,也就是说,您甚至不需要为返回的所有类型创建pojo类,只要在需要时继续添加pojo类即可。

您的web服务是否正常工作?它是否给出了预期的响应?将urlJsonObj的值粘贴到导航器上的新选项卡上,然后我可以看看你的JSONObject抱歉,误解了,但是新标签在哪里?我的错,我的意思是说浏览器不是导航器。在你的互联网浏览器上(Chrome、Firefox、Safari等)打开一个新的选项卡,粘贴urlJsonObj的值,然后按enterOh,是的,一切都很好,json在浏览器上看起来很合适。phone在其他Android版本上获得json,但在2.3上没有。两者上的链接相同,但结果不同。也许你知道我为什么不能添加gson库吗?一切看起来都很好,但当我尝试编译时,它给了我意外的顶级异常,我认为它以某种方式覆盖了gson库。
public class ServerResponse {
    public List<Accommodation> Accommodation;
    public List<CashMachines> Cash_machines; // assuming you have CashMachines as well like above
}
Request<ServerResponse> request = new GsonRequest<ServerResponse>(Request.Method.GET, 
     url,AnalyticsData.class, new Response.Listener<ServerResponse>() {
        @Override
        public void onResponse(ServerResponse response) {
               // user response here
               Log.d(">>", response.Accommodation.size()+"");
        }, errorListener);