Java 为什么我的JSONObject请求不起作用?

Java 为什么我的JSONObject请求不起作用?,java,android,Java,Android,我已经摆弄这个好几天了。我做不好。Android studio不允许我用这个错误编译它。因此,我有一个应用程序,其中有两个选项卡和两个片段。一个片段称为new,该片段获取json。但我没能把它做好。我上传了错误的图片,以及类文件。你能帮帮我吗 错误:“无法解析构造函数JsonObjectRequest(int,java.lang.String,null……) new_fragment.java public class new_fragment extends Fragment { p

我已经摆弄这个好几天了。我做不好。Android studio不允许我用这个错误编译它。因此,我有一个应用程序,其中有两个选项卡和两个片段。一个片段称为new,该片段获取json。但我没能把它做好。我上传了错误的图片,以及类文件。你能帮帮我吗

错误:“无法解析构造函数JsonObjectRequest(int,java.lang.String,null……)

new_fragment.java

public class new_fragment extends Fragment {
    private static final String ARG_PARAM1 = "param1";
    private static final String ARG_PARAM2 = "param2";

    private String mParam1;
    private String mParam2;
    private VolleySingleton volleySingleton;
    private ImageLoader imageLoader;
    private RequestQueue requestQueue;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if (getArguments() !=null){
            mParam1 = getArguments().getString(ARG_PARAM1);
            mParam2 = getArguments().getString(ARG_PARAM2);
        }
        volleySingleton = VolleySingleton.getsInstance();
        requestQueue = volleySingleton.getRequestQueue();
        RequestQueue requestQueue = VolleySingleton.getsInstance().getRequestQueue();
        JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET,"http://10.0.8.152/json/new.json",null,
                new Response.Listener<JSONObject>() {
                    @Override
                    public void onResponse(JSONObject response) {
                        System.out.println(response);
                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {

                    }
                });
        requestQueue.add(request);
    }

    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedIntanceState) {
        setHasOptionsMenu(true);
        View layout = inflater.inflate(R.layout.new_fragment, container, false);
        return layout;
    }

    @Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        // TODO Auto-generated method stub
        super.onCreateOptionsMenu(menu, inflater);
        inflater.inflate(R.menu.ref_menu, menu);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // handle item selection
        switch (item.getItemId()) {
            case R.id.refreshico:
                // do s.th.
                return true;
            default:
                return super.onOptionsItemSelected(item);
        }
    }

}
public类new\u片段扩展片段{
私有静态最终字符串ARG_PARAM1=“PARAM1”;
私有静态最终字符串ARG_PARAM2=“PARAM2”;
私有字符串mParam1;
私有字符串mParam2;
单打单打单打单打单打单打;
私有图像加载器;
私有请求队列请求队列;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
如果(getArguments()!=null){
mParam1=getArguments().getString(ARG_PARAM1);
mParam2=getArguments().getString(ARG_PARAM2);
}
volleySingleton=volleySingleton.getsInstance();
requestQueue=volleySingleton.getRequestQueue();
RequestQueue RequestQueue=VolleySingleton.getsInstance().getRequestQueue();
JsonObjectRequest=新的JsonObjectRequest(request.Method.GET,“http://10.0.8.152/json/new.json“,空,
新的Response.Listener(){
@凌驾
公共void onResponse(JSONObject响应){
System.out.println(响应);
}
},
新的Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
}
});
添加(请求);
}
创建视图上的公共视图(LayoutFlater充气机、@Nullable ViewGroup容器、@Nullable Bundle SavedInstanceState){
设置选项菜单(真);
视图布局=充气机。充气(R.layout.new_碎片,容器,假);
返回布局;
}
@凌驾
创建选项菜单(菜单菜单,菜单充气机){
//TODO自动生成的方法存根
super.onCreateOptions菜单(菜单,充气机);
充气机。充气(右菜单。参考菜单,菜单);
}
@凌驾
公共布尔值onOptionsItemSelected(菜单项项){
//处理项目选择
开关(item.getItemId()){
案例R.id.refreshico:
//做s.th。
返回true;
违约:
返回super.onOptionsItemSelected(项目);
}
}
}
单打截击

public class VolleySingleton {
    private static VolleySingleton sInstance = null;
    private ImageLoader mImageLoader;
    private RequestQueue mRequestQueue;
    private VolleySingleton(){
        mRequestQueue = Volley.newRequestQueue(appClass.getAppContext());
        mImageLoader = new ImageLoader(mRequestQueue,new ImageLoader.ImageCache() {
            private LruCache<String, Bitmap> cache = new LruCache<>((int)(Runtime.getRuntime().maxMemory()/1024)/8);

            @Override
            public Bitmap getBitmap(String url) {
                return cache.get(url);
            }

            @Override
            public void putBitmap(String url, Bitmap bitmap) {
                cache.put(url, bitmap);
            }
        });
    }

    public static VolleySingleton getsInstance(){
        if(sInstance==null){
            sInstance = new VolleySingleton();
        }
        return sInstance;
    }

    public RequestQueue getRequestQueue(){
        return mRequestQueue;
    }
    public ImageLoader getImageLoader(){
        return mImageLoader;
    }


}
公共类截击单打{
私有静态截击Singleton sInstance=null;
私有图像加载器;
私有请求队列mRequestQueue;
私人截击{
mRequestQueue=Volley.newRequestQueue(appClass.getAppContext());
mImageLoader=新的ImageLoader(mRequestQueue,newImageLoader.ImageCache(){
私有LruCache=newlrucache((int)(Runtime.getRuntime().maxMemory()/1024)/8);
@凌驾
公共位图getBitmap(字符串url){
返回cache.get(url);
}
@凌驾
公共位图(字符串url、位图){
cache.put(url、位图);
}
});
}
公共静态截击单例getsInstance(){
if(sInstance==null){
sInstance=新截击单球();
}
回归承诺;
}
公共请求队列getRequestQueue(){
返回mrequest队列;
}
公共ImageLoader getImageLoader(){
返回图像加载器;
}
}
强制转换(字符串)为空

JsonObjectRequest-request=新的JsonObjectRequest(request.Method.GET,”http://10.0.8.152/json/new.json“,(字符串)null,
新的Response.Listener(){
@凌驾
公共void onResponse(JSONObject响应){
System.out.println(响应);
}
},
新的Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
}
});

新的JSONObject请求
将第三个参数作为
字符串请求体

将null强制转换为字符串

或者您可以创建一个空字符串,如
string rBody=null;
,然后将
rBody
作为第三个参数传递

JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET,
                "http://10.0.8.152/json/new.json", (String) null, // here
                new Response.Listener<JSONObject>() {
                    @Override
                    public void onResponse(JSONObject response) {
                        System.out.println(response);
                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {

                    }
                });
requestQueue.add(request);
JsonObjectRequest-request=新的JsonObjectRequest(request.Method.GET,
"http://10.0.8.152/json/new.json,(字符串)null,//此处
新的Response.Listener(){
@凌驾
公共void onResponse(JSONObject响应){
System.out.println(响应);
}
},
新的Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
}
});
添加(请求);

我看到了这种情况,它发生了,因为正如您的错误所说,构造函数不存在

如果使用JsonObjectRequest作为默认值,并且希望使用Get方法,则不必发送null参数,只需通过以下方式发送:

更改此项:

JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET,"http://10.0.8.152/json/new.json",null,
            new Response.Listener<JSONObject>() {
                @Override
                public void onResponse(JSONObject response) {
                    System.out.println(response);
                }
            },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {

                }
            });
    requestQueue.add(request);
JsonObjectRequest-request=新的JsonObjectRequest(request.Method.GET,”http://10.0.8.152/json/new.json“,空,
新的Response.Listener(){
@凌驾
公共void onResponse(JSONObject响应){
System.out.println(响应);
}
},
新的Response.ErrorList
JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET,"http://10.0.8.152/json/new.json",null,
            new Response.Listener<JSONObject>() {
                @Override
                public void onResponse(JSONObject response) {
                    System.out.println(response);
                }
            },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {

                }
            });
    requestQueue.add(request);
JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET,"http://10.0.8.152/json/new.json",
            new Response.Listener<JSONObject>() {
                @Override
                public void onResponse(JSONObject response) {
                    System.out.println(response);
                }
            },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {

                }
            });
    requestQueue.add(request);
    JSONObject jsonObject = null;

    JsonObjectRequest request = new JsonObjectRequest(
            Request.Method.GET, "Your url", jsonObject,
            new Response.Listener<JSONObject>() {

                @Override
                public void onResponse(JSONObject response) {

                }
            }, 
            new Response.ErrorListener() {

                @Override
                public void onErrorResponse(VolleyError error) {

                }
         });
 JsonObjectRequest jsonObjectRequest = new JsonObjectRequest("http://www.aaa.com/getJSON/dummyMeldung.json", null,
                new Response.Listener<JSONObject>() {
                    @Override
                    public void onResponse(JSONObject response) {
                        try {
                            JSONArray jsonArray = response.getJSONArray("meldung");
                            for (int i = 0; i <= jsonArray.length(); i++) {
                                JSONObject meldung = jsonArray.getJSONObject(i);
                                String comment = meldung.getString("comment");
                                Log.d("ausgabe", comment);
                            }
                        } catch (JSONException e) {
                            e.printStackTrace();
                        }

                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {

                    }
                });
dependencies {
......
compile 'com.mcxiaoke.volley:library:1.0.0'
.....
}