java - 解析 JSON 时出现问题

标签 java android mysql json

您好,我想从 mysql 数据库获取联系人列表(全名),我在 json 中收到错误。提前谢谢您

错误:json.JSONException:java.lang.String类型的值DOCTYPE无法转换为JSONArray

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONArray;

import android.os.AsyncTask;
import android.os.Bundle;
import android.app.Activity;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.util.Log;
import android.view.Menu;
import android.widget.ListView;

public class ListContact extends Activity {

    ListView list;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_list_contact);

        new downloadTask().execute();

    }





  protected class downloadTask extends AsyncTask<String, String, ArrayList<Contact>>{

    ArrayList<Contact> _myListContact;

    Contact contact;

    private ProgressDialog progressDialog;

     @Override
        protected void onPreExecute() {

         progressDialog = ProgressDialog.show(ListContact.this, "", " Loading ....");

        }


    @Override
    protected ArrayList<Contact> doInBackground(String... jsonData) {

        this._myListContact  = new ArrayList<Contact>();

        String resultat = null ;

        InputStream is = null ;


        try {

            HttpClient httpclient = new DefaultHttpClient();
            HttpPost requete = new HttpPost("http://192.168.1.2/conta.php");
            HttpResponse reponse = httpclient.execute(requete);
            HttpEntity entity = reponse.getEntity();


            is = entity.getContent();

        } catch (Exception e){

                    Log.e("erreur log" , "erreur lors  connextion htpp" +e.toString());

                } try {

            BufferedReader reader = new  BufferedReader(new InputStreamReader(is) , 8);
            StringBuilder builder = new StringBuilder();
            String line = null;

           while ((line = reader.readLine()) != null ){

               builder.append(line + "/n");


           } is.close();

           resultat = builder.toString();


        } catch (Exception e){

            Log.e("erreur log" , "erreur lors du parsing " +e.toString());

        }

        try {

            JSONArray _jArray = new JSONArray(resultat.toString());

            for (int i = 0 ; i<_jArray.length(); i++) {

                 contact = new Contact();

                contact.setFull_name(_jArray.getJSONObject(i).getString("full_name").toString());

                _myListContact.add(contact);


            } 



        } catch (Exception e){

            Log.e("erreur log" , "erreur lors du parsing json" +e.toString());

        }


        return _myListContact;
    }


    @Override
    protected void onPostExecute(ArrayList<Contact> _myListContact) {

        list = (ListView)findViewById(R.id.listcontact);
        AdapterContact adapter = new AdapterContact(ListContact.this, _myListContact);
        list.setAdapter(adapter);
       progressDialog.dismiss();



    }



}


}

最佳答案

我之前收到过此错误,您没有从 http 请求中获取 JSON,而是从 HTML 中获取。

就我而言,它是 page not found (404)

这是一个 HTML 页面,其中第一行是您的文档类型 ( <!DOCTYPE html> )

您必须确保网址正确

 HttpPost requete = new HttpPost("http://192.168.1.2/conta.php");

关于java - 解析 JSON 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19894224/

相关文章:

java - 使用 XMLDecoder 将编码的 XML 转换为 List<T>

java - 将子组件添加到 JButton

android - 有没有办法访问视频的像素?

java - 将我的应用程序连接到 WCF 服务

Mysql查询重复键更新

javascript - PHP 中的查询语句有未定义的参数

java - Gif图像在Java中的JLabel中显示丑陋?

java - 回收器 View 中的空对象引用

java - 服务器未收到 UDP 广播数据包

php - 显示喜欢项目列表中项目的用户