在 Fragment 中获取 JSON 数据时连接到服务器时出错

我正在尝试使用片段中的以下代码从 php 文件中获取 JSON 数据,但是每次运行代码时,系统总是返回在result=false指示未获取数据时调用的 Toast 。导致数据获取失败的问题可能是什么?


下面是包含 JSON 数据的 inded.php 文件的代码。


<?php

$arr = array ( "properties"    =>   array(

            array(

                "companyName"   =>  "Motorola",

                "name" => "Moto"

            ),

            array(

                "companyName" => "Sony",

                "name" => "xPeria"

            ),

            array(

                "companyName" => "Infinix",

                "name" => "S2 Pro"

            )

        )

);


echo json_encode($arr);

?>

下面是onCreateView()片段部分的代码。


    new JSONAsynTask().execute("http://buvick-group.com/app/index.php");

下面是我JSONAsynTask()班级的代码。


class JSONAsynTask extends AsyncTask<String, Void, Boolean> {

    String result;

    ProgressDialog dialog;



    @Override

    protected void onPreExecute() {

        super.onPreExecute();

        dialog = new ProgressDialog(getActivity());

        dialog.setMessage("Loading, please wait");

        dialog.setTitle("Connecting server");

        dialog.show();

        dialog.setCancelable(false);

    }


    @Override

    protected Boolean doInBackground(String... urls) {



        try {



            HttpGet httppost = new HttpGet(urls[0]);

            HttpClient httpclient = new DefaultHttpClient();

            HttpResponse response = httpclient.execute(httppost);



            int status = response.getStatusLine().getStatusCode();

            Log.e(TAG, "HTTP Internet Result: " + String.valueOf(status));

            if (status == 200) {

                HttpEntity entity = response.getEntity();

                String data = EntityUtils.toString(entity);


                JSONObject jsono = new JSONObject(data);

                JSONArray jarray = jsono.getJSONArray("properties");


任何帮助将不胜感激。先感谢您。


暮色呼如
浏览 168回答 3
3回答

白衣非少年

您的 JSON 需要重新设计。这是为您的android json解析代码生成正确json的代码<?php$response = array();$response["code"] = 200;$response["properties"] = array();for($i = 0; $i < 6; $i++) {&nbsp; &nbsp; $item = array();&nbsp; &nbsp; $item["companyName"] = "Company ".$i;&nbsp; &nbsp; $item["name"] = "Model ".$i;&nbsp; &nbsp; array_push($response["properties"],&nbsp; $item );}echo json_encode($response);?>这将打印{"code":200,"properties":[{"companyName":"Company 0","name":"Model 0"},{"companyName":"Company 1","name":"Model 1"},{"companyName":"Company 2","name":"Model 2"},{"companyName":"Company 3","name":"Model 3"},{"companyName":"Company 4","name":"Model 4"},{"companyName":"Company 5","name":"Model 5"}]}

宝慕林4294392

在@UmangBurman 的大量帮助下,我能够找到问题的根源。问题是 JSON 数据。使用 JSON 数据格式和正确的JSONAsynTask,我希望这个问题能帮助将来有人在他们的代码中形成基础。我已更新问题中的代码以显示调试版本。干杯
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java