Java 如何在android上将JSONObject显示为TextView

Java 如何在android上将JSONObject显示为TextView,java,php,json,android-studio,Java,Php,Json,Android Studio,我已经设置了一个php脚本来创建json,但是当我试图显示JSONobject时,在我的Android监视器上出现了一些类似的错误 值(html)(正文)(java.lang.String类型的脚本无法转换为JSONObject 有人能告诉我如何修复它吗?请在我的代码下面尝试 my MainActivity.java 包flix.yudi.okhttp1; 导入android.app.ProgressDialog; 导入android.os.AsyncTask; 导入android.os.Bun

我已经设置了一个php脚本来创建json,但是当我试图显示JSONobject时,在我的Android监视器上出现了一些类似的错误

值(html)(正文)(java.lang.String类型的脚本无法转换为JSONObject

有人能告诉我如何修复它吗?请在我的代码下面尝试

my MainActivity.java

包flix.yudi.okhttp1;
导入android.app.ProgressDialog;
导入android.os.AsyncTask;
导入android.os.Bundle;
导入android.support.v7.app.AppActivity;
导入android.util.Log;
导入android.widget.ListAdapter;
导入android.widget.ListView;
导入android.widget.simpledapter;
导入android.widget.Toast;
导入org.json.JSONArray;
导入org.json.JSONException;
导入org.json.JSONObject;
导入java.util.ArrayList;
导入java.util.HashMap;
公共类MainActivity扩展了AppCompatActivity{
私有字符串标记=MainActivity.class.getSimpleName();
私人对话;
私有ListView lv;
//获取联系人JSON的URL
专用静态字符串url=”http://zxccvvv.cuccfree.com/send_data.php";
ArrayList联系人列表;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
contactList=新的ArrayList();
lv=(ListView)findViewById(R.id.list);
新建GetContacts().execute();
}
/**
*异步任务类通过HTTP调用获取json
*/
私有类GetContacts扩展异步任务{
@凌驾
受保护的void onPreExecute(){
super.onPreExecute();
//显示进度对话框
pDialog=新建进度对话框(MainActivity.this);
setMessage(“请稍候…”);
pDialog.setCancelable(假);
pDialog.show();
}
@凌驾
受保护的Void doInBackground(Void…arg0){
HttpHandler sh=新的HttpHandler();
//向url发出请求并获得响应
字符串jsonStr=sh.makeServiceCall(url);
Log.e(标签,“来自url的响应:+jsonStr”);
if(jsonStr!=null){
试一试{
JSONObject jsonObj=新的JSONObject(jsonStr);
//获取JSON数组节点
JSONArray contacts=jsonObj.getJSONArray(“”);
//通过所有触点循环
对于(int i=0;ivalue
联系人:put(“id”,id);
联系。把(“问”,问);
//将联系人添加到联系人列表
联系人列表。添加(联系人);
}
}捕获(最终JSONException e){
Log.e(标记“Json解析错误:”+e.getMessage());
runOnUiThread(新的Runnable(){
@凌驾
公开募捐{
Toast.makeText(getApplicationContext(),
Json分析错误:“+e.getMessage(),
吐司长度(长)
.show();
}
});
}
}否则{
e(标记“无法从服务器获取json”);
runOnUiThread(新的Runnable(){
@凌驾
公开募捐{
Toast.makeText(getApplicationContext(),
“无法从服务器获取json。请检查LogCat以了解可能的错误!”,
吐司长度(长)
.show();
}
});
}
返回null;
}
@凌驾
受保护的void onPostExecute(void结果){
super.onPostExecute(结果);
//关闭进度对话框
if(pDialog.isShowing())
pDialog.disclose();
/**
*将解析的JSON数据更新到ListView中
* */
ListAdapter=新的SimpleAdapter(
MainActivity.this,联系人列表,
R.layout.list_项,新字符串[]{“ask”},新int[]{R.id.ask});
低压设置适配器(适配器);
}
}
}
我的HttpHandler.java

包flix.yudi.okhttp1;
导入android.util.Log;
导入java.io.BufferedInputStream;
导入java.io.BufferedReader;
导入java.io.IOException;
导入java.io.InputStream;
导入java.io.InputStreamReader;
导入java.net.HttpURLConnection;
导入java.net.MalformedURLException;
导入java.net.ProtocolException;
导入java.net.URL;
公共类HttpHandler{
私有静态最终字符串标记=HttpHandler.class.getSimpleName();
公共HttpHandler(){
}
公共字符串makeServiceCall(字符串请求URL){
字符串响应=null;
试一试{
URL=新URL(请求URL);
HttpURLConnection conn=(HttpURLConnection)url.openConnection();
conn.setRequestMethod(“GET”);
//阅读回复
InputStream in=新的BufferedInputStream(conn.getInputStream());
响应=convertStreamToString(in);
}捕获(格式错误){
Log.e(标记“MalformedURLException:+e.getMessage());
}捕获(协议例外e){
Log.e(标记“ProtocolException:+e.getMessage());
}捕获(IOE异常){
Error
  JSONObject jsonObject = new JSONObject(jsonStr);
 JSONArray contacts = new JSONArray(jsonStr);