Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.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 从我的URL解析JSON数据时出错_Android_Json - Fatal编程技术网

Android 从我的URL解析JSON数据时出错

Android 从我的URL解析JSON数据时出错,android,json,Android,Json,我正在开发一个基于远程数据库的android应用程序,我找到了如何将数据放入数据库的解决方案,但我在取回数据方面遇到了很多问题。 当我打开获取数据的活动时,应用程序崩溃。我无法定位错误在我的代码中的位置!!这是我的代码,希望你能帮助我。 多谢各位 这是“Acceuil”类,有一个按钮打开“Professors”类 导入android.app.Activity; 导入android.content.Intent; 导入android.os.Bundle; 导入android.view.view;

我正在开发一个基于远程数据库的android应用程序,我找到了如何将数据放入数据库的解决方案,但我在取回数据方面遇到了很多问题。 当我打开获取数据的活动时,应用程序崩溃。我无法定位错误在我的代码中的位置!!这是我的代码,希望你能帮助我。 多谢各位

这是“Acceuil”类,有一个按钮打开“Professors”类

导入android.app.Activity;
导入android.content.Intent;
导入android.os.Bundle;
导入android.view.view;
导入android.view.view.OnClickListener;
导入android.widget.Button;
//在这个类中,我只是定义了一个按钮,它将打开另一个类以从数据库中获取数据。
公共类Acceuil扩展活动{
按钮b1;
创建时受保护的void(Bundle savedInstanceState){
//TODO自动生成的方法存根
super.onCreate(savedInstanceState);
setContentView(R.layout.acceuil);
b1=(按钮)findViewById(R.id.button3);
b1.setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图arg0){
//TODO自动生成的方法存根
Intent i=新的Intent(getApplicationContext(),Professors.class);
星触觉(i);
}
});
}
}
网络操作可能涉及不可预测的延迟。为了防止这种情况造成糟糕的用户体验,请始终在UI的单独线程上执行网络操作。AsyncTask类提供了从UI线程启动新任务的最简单方法之一


您正在主线程中进行联网。你需要先解决这个问题

使用异步任务

例如:

private TextView uid; // Define global
立即创建

uid = (TextView)findViewById(R.id.pro1);

new MyAsyncTask().execute();
内部阶级

public class MyAsyncTask extends AsyncTask<Void, Void, String> {

 @Override
 public String doInBackground(Void a) {
            JSONParser jParser = new JSONParser();

            // Getting JSON from URL
            JSONObject json = jParser.getJSONFromUrl(url);

        try {
                // Getting JSON Array
                user = json.getJSONArray(TAG_USER);
                JSONObject c = user.getJSONObject(0);

                // Storing  JSON item in a Variable
                String id = c.getString(TAG_ID);

                return id;
        } catch (JSONException e) {
            e.printStackTrace();
        }
        return null;
 }

 public void onPostExecute(String result) {
    uid.setText(result);
 }

}
公共类MyAsyncTask扩展了AsyncTask{
@凌驾
公共字符串doInBackground(无效a){
JSONParser jParser=新的JSONParser();
//从URL获取JSON
JSONObject json=jParser.getJSONFromUrl(url);
试一试{
//获取JSON数组
user=json.getJSONArray(TAG_user);
JSONObject c=user.getJSONObject(0);
//在变量中存储JSON项
String id=c.getString(TAG_id);
返回id;
}捕获(JSONException e){
e、 printStackTrace();
}
返回null;
}
public void onPostExecute(字符串结果){
uid.setText(结果);
}
}

请将您收到的错误与logcat输出一起发布为什么不先发布据称有错误的JSON消息?对不起,我的朋友,我正在我的真实设备上测试,因为模拟器在我的笔记本电脑上无法工作。其中一个原因是,您的web主机正在向您的“JSON”文件添加内容,因此它不是有效的JSON。此外,来自服务器的响应头是“text/html;charset=utf-8”,它们应该是json@waelbenhamda您仍然可以从实际设备获得logcat输出。没有它,就很难解决问题。不管延迟或用户体验如何,有效的JSON仍然是无效的JSON。