Parsing JSON data - httpurlConnection

  • Replies:1
  • OpenNot stickiedAnswered
  • Forum posts: 2

Nov 18, 2017 6:31:18 PM via Website

I am really fighting with this many hours - I just want to get the JSON data from httpurlconnection, but now I have only Connecting server displaying and nothing happens.

This is my whole code:

@SuppressWarnings("deprecation")
public class JSONParsingFragment extends Fragment{
ListView lv;
ArrayList actorsList;
ActorAdapter adapter;

@Override
public View onCreateView(LayoutInflater inflater,
                         @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

    View vw=inflater.inflate(R.layout.jsonparse_fragment, container, false);
    lv=(ListView) vw.findViewById(R.id.listView1);

    actorsList = new ArrayList<Actors>();
    new JSONAsynTask().execute("fullpath.../JSONParsingTutorial/jsonActors");
    adapter = new ActorAdapter(getActivity(), R.layout.jsonparsedata_item, actorsList);
    lv.setAdapter(adapter);
    return  vw;
}

class JSONAsynTask extends AsyncTask<String, Void, Void> {
    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 Void doInBackground(String... strings) {
        URL url;
        HttpURLConnection urlConnection = null;

        try {
            url = new URL(strings[0]);
            urlConnection = (HttpURLConnection) url.openConnection();
            int responseCode = urlConnection.getResponseCode();

            if(responseCode == HttpURLConnection.HTTP_OK){


                JSONObject jsono = new JSONObject();
                JSONArray jarray = jsono.getJSONArray("actors");

                for (int i = 0; i < jarray.length(); i++) {
                    JSONObject object = jarray.getJSONObject(i);

                    Actors actor = new Actors();

                    actor.setName(object.getString("name"));
                    actor.setDescription(object.getString("description"));
                    actor.setDob(object.getString("dob"));
                    actor.setCountry(object.getString("country"));
                    actor.setHeight(object.getString("height"));
                    actor.setSpouse(object.getString("spouse"));
                    actor.setChildren(object.getString("children"));
                    actor.setImage(object.getString("image"));

                    actorsList.add(actor);

                    Log.v("log", "response");
                }


            } } catch (IOException e) {
            e.printStackTrace();
        } catch (JSONException e) {
            e.printStackTrace();
        }

        return null;}

    protected void onPostExecute(Boolean result) {

        dialog.dismiss();
        adapter.notifyDataSetChanged();
        if(result == false)
            Toast.makeText(getActivity(), "Unable to fetch data from server", Toast.LENGTH_LONG).show();

    }
}

}

So it seems I have an error in this part:

  if(responseCode == HttpURLConnection.HTTP_OK){


                JSONObject jsono = new JSONObject();
                JSONArray jarray = jsono.getJSONArray("actors");

Can you please help me how to get the JSON data?

— modified on Nov 18, 2017 6:31:41 PM

  • Forum posts: 2

Nov 19, 2017 10:35:55 PM via Website

Seems here are really "many" people able to help :D I did it myself, have no time untill some one wakes up here.