什么阻止我得到这个json数据

时间:2017-03-26 13:16:30

标签: android json

我正试图在这个json bellow中获取这些图像并将其显示在GridView但我不知道为什么我无法达到那个>>>

    {
id: 241,
title: "title",
image: "1469370455.jpg",
description: " descriotion   ",
images: [
"1469370455.jpg",
"1469370458.jpg",
"1469370481.jpg",
"1469370484.jpg"
]}

这是我完整的AyncTask。

     private class AysncImages extends AsyncTask<String, Void, Integer> {
        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            // Showing progress dialog
//            pDialog = new ProgressDialog(getActivity());
//            pDialog.setMessage("Please wait...");
//            pDialog.setCancelable(false);
//            pDialog.show();

        }

        @Override
        protected Integer doInBackground(String... arg0) {
            // Building Parameters
            HttpHandler sh = new HttpHandler();

            String jsonStr = sh.makeServiceCall(String.valueOf(Config.BASE_URL));

            //jsonStr = sh.makeServiceCall(url + 373); //or url + ID
            Log.i(TAG, "doInBackground Image: " + jsonStr);

            if (jsonStr != null) {


                try {
                    JSONObject jsonObj = new JSONObject(jsonStr);

                    JSONArray arrayObj = jsonObj.getJSONArray("images");

                    Log.i(TAG, "array: "+ jsonObj);

                    GridItem item = new GridItem();
                    for (int i = 0; i < arrayObj.length(); i++) {
                        String images = arrayObj.getString(i);


                        Log.i(TAG, "parseResult: " + jsonObj);
                        item.setImage(IMAGE_LINK + images);//IMAGE_LINK +

                        Log.i(TAG, "parseResult: " + IMAGE_LINK + " " + images);
                        mGridData.add(item);

                    }
                    // Getting JSON Array node


                } catch (JSONException e1) {
                    e1.printStackTrace();
                }
            }
            return null;
        }

        @Override
        protected void onPostExecute(Integer result) {
//            if (result == 1) {
                mGridAdapter.setGridData(mGridData);
            //} else {
              //  Toast.makeText(getActivity(), "Failed to fetch data!", Toast.LENGTH_SHORT).show();
           // }

            //Hide progressbar
            mProgressBar.setVisibility(View.GONE);
        }

    }

在我的日志中,我无法访问jsonObjarrayObj我只能找到jsonStr我错过的内容?

我的jsonStr

日志

enter image description here

1 个答案:

答案 0 :(得分:0)

你得到的json字符串是[{id:abc,...}] 但是JsonObject应该以{id:abc,...}开头 也许你试图删除字符串末尾的'['和']'来获取对象

以'['应该是一个数组

开头