Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.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
Php Android Json数据(从mysqli输出)在TextView中不起作用_Php_Android_Json_Android Volley - Fatal编程技术网

Php Android Json数据(从mysqli输出)在TextView中不起作用

Php Android Json数据(从mysqli输出)在TextView中不起作用,php,android,json,android-volley,Php,Android,Json,Android Volley,我正在做一些基本测试,以显示从PHP mysqli输出到TextView的json数据 TextView mTxtDisplay; String url = "http://192.168.1.102/web_service/test.php/"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R

我正在做一些基本测试,以显示从PHP mysqli输出到TextView的json数据

TextView mTxtDisplay;

String url = "http://192.168.1.102/web_service/test.php/";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mTxtDisplay = (TextView) findViewById(R.id.tv);

    JsonObjectRequest jsObjRequest = new JsonObjectRequest
            (Request.Method.GET, url, null, new Response.Listener<JSONObject>() {

                @Override
                public void onResponse(JSONObject response) {
                    mTxtDisplay.setText(response.toString());
                }
            }, new Response.ErrorListener() {

                @Override
                public void onErrorResponse(VolleyError error) {
                    // TODO Auto-generated method stub

                }
            });

    RequestQueue requestQueue = Volley.newRequestQueue(this);
    requestQueue.add(jsObjRequest);
}}
输出

[{"iid":"482","uid":"1","item_id":"1","item_name":"Chicken Rice","item_price":"1","item_quantity":"1","status":"0"},
{"iid":"483","uid":"1","item_id":"1","item_name":"French Fries","item_price":"1","item_quantity":"1","status":"0"},
{"iid":"484","uid":"1","item_id":"1","item_name":"apple","item_price":"1","item_quantity":"1","status":"0"},
{"iid":"492","uid":"1","item_id":"1","item_name":"western+italian","item_price":"1","item_quantity":"1","status":"0"},
{"iid":"493","uid":"1","item_id":"1","item_name":"no_cat","item_price":"1","item_quantity":"1","status":"0"}]
我认为我的json是正确的?但它根本不显示在文本视图中,它是空的!没有任何错误

之后,我意识到以下格式的数据运行良好(普通硬代码数组)

这意味着第二个不带“[]”的json数据可以正常工作,但第一个带“[]”的json数据不工作。但这不应该是正确的方式?


编码有什么问题

这是因为
[]
中的数据是
JSONArray
而不是
JSONObject
。尝试StringRequest而不是JSONObjectRequest,然后将响应打印到EditText/TextView中。您可以通过将数组元素转换为JSONArray来访问

JSONArray arr=new JSONArray(response);

这是因为
[]
中的数据是
JSONArray
而不是
JSONObject
。尝试StringRequest而不是JSONObjectRequest,然后将响应打印到EditText/TextView中。您可以通过将数组元素转换为JSONArray来访问

JSONArray arr=new JSONArray(response);

尝试使用StringRequest而不是JSONObjectRequest,您的代码如下所示:

        StringRequest jsonReq = new StringRequest(Request.Method.POST,
            URL, new Response.Listener<String>() {

        @Override
        public void onResponse(String s) {
         Log.d("Response", s);
         textView.setText(s)
        }
    }, new Response.ErrorListener() {

        @Override
        public void onErrorResponse(VolleyError error) {
         //do error code here..
        }
    }) {
        @Override
        public Map<String, String> getParams(){
            Map<String, String> params = new HashMap<String, String>();
            params.put("param1", value);
            return params;
        }
    };
StringRequest jsonReq=新的StringRequest(Request.Method.POST,
URL,新的Response.Listener(){
@凌驾
公共void onResponse(字符串s){
日志d(“响应”,s);
textView.setText(s)
}
},new Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
//请在此处输入错误代码。。
}
}) {
@凌驾
公共映射getParams(){
Map params=新的HashMap();
参数put(“参数1”,值);
返回参数;
}
};

getParams用于向服务器发送带有一些用户定义值的请求,或在运行时获取一些特定数据。

尝试使用StringRequest而不是JSONObjectRequest,您的代码如下所示:

        StringRequest jsonReq = new StringRequest(Request.Method.POST,
            URL, new Response.Listener<String>() {

        @Override
        public void onResponse(String s) {
         Log.d("Response", s);
         textView.setText(s)
        }
    }, new Response.ErrorListener() {

        @Override
        public void onErrorResponse(VolleyError error) {
         //do error code here..
        }
    }) {
        @Override
        public Map<String, String> getParams(){
            Map<String, String> params = new HashMap<String, String>();
            params.put("param1", value);
            return params;
        }
    };
StringRequest jsonReq=新的StringRequest(Request.Method.POST,
URL,新的Response.Listener(){
@凌驾
公共void onResponse(字符串s){
日志d(“响应”,s);
textView.setText(s)
}
},new Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
//请在此处输入错误代码。。
}
}) {
@凌驾
公共映射getParams(){
Map params=新的HashMap();
参数put(“参数1”,值);
返回参数;
}
};

getParams用于向服务器发送带有一些用户定义值的请求,或在运行时获取一些特定数据。

您是否从web api获得响应?如果有响应,那么它应该显示,如果没有,那么检查它给出的错误是什么?@SilvansSolanki它与它的api是否正确无关。这个错误就像Nayan在下面提到的那样,您是否从web api获得响应?如果有响应,那么它应该显示,如果没有,那么检查它给出的错误是什么?@SilvansSolanki它与它的api是否正确无关。这个错误就像Nayan在下面提到的一样。您可以显示更改为JsonArrayRequest的代码吗?我试过了,但出现了一些错误。不是JSONObjectRequest,而是尝试StringRequest,然后将响应转换为JsonArrayRequest,您可以显示更改为JsonArrayRequest的代码吗?我尝试了,但出现了一些错误。请尝试StringRequest,而不是JSONObjectRequest,然后将响应转换为JSONArray