Php Android Json数据(从mysqli输出)在TextView中不起作用
我正在做一些基本测试,以显示从PHP mysqli输出到TextView的json数据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
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