Задать вопрос
@newdancer

Прошу помощи с json? Вываливается с ошибкой почему?

Прошу помощи с json? Вываливается с ошибкой!
Фрагмент где пытаюсь получить данные:
public class FilmFragment extends ListFragment
{
    public static final String ARG_FILM_NUMBER = "film_number";

    // Для загрузки контента
    private ProgressDialog pDialog;

    // Создаем JSON парсер объект
    JSONParser jParser = new JSONParser();

    // url to get all products list
    private static String url_all_films = "http://kinoobzor.org/android/get_all_cinema.php";

    // JSON Node names
    private static final String TAG_SUCCESS = "success";
    private static final String TAG_FILM = "dle_post";
    private static final String TAG_PID = "pid";
    private static final String TAG_TITLE = "name";
    private static final String TAG_CATEGORY = "category";

    // products JSONArray
    JSONArray films = null;

    ArrayList<Cinema> cinemas = new ArrayList<Cinema>();
    CinemaAdapter cinemaAdapter;

    View rootView;
    Context ctx;
    Activity act;

    public FilmFragment() {
        // Для фрагмента требуется пустой конструктор
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        rootView = inflater.inflate(R.layout.fragment_film, container, false);
        int id_cat = getArguments().getInt(ARG_FILM_NUMBER);

        // получаем названия категорий фильмов и выводим в левом меню
        String[] cat_film=getResources().getStringArray(R.array.category_film_array);
        getActivity().setTitle(cat_film[id_cat]);

        // генерируем данные для адаптера
        new LoadAllCinema().execute();
        return rootView;
    }

    // встроенный класс для загрузки данных в потоке
    class LoadAllCinema extends AsyncTask<String, String, String> {

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            pDialog = new ProgressDialog(getActivity());
            pDialog.setMessage("Loading products. Please wait...");
            pDialog.setIndeterminate(false);
            pDialog.setCancelable(false);
            pDialog.show();
        }

        protected String doInBackground(String... args) {
            // Building Parameters
            List<NameValuePair> params = new ArrayList<NameValuePair>();
            // getting JSON string from URL
            JSONObject json = jParser.makeHttpRequest(url_all_films, "GET", params);

            // Check your log cat for JSON reponse
           // Log.d("All Cinemas: ", json.toString());

            try {
                // Checking for SUCCESS TAG
                int success = json.getInt(TAG_SUCCESS);

                if (success == 1) {
                    films = json.getJSONArray(TAG_FILM);

                    for (int i = 0; i <= films.length(); i++) {
                        JSONObject c = films.getJSONObject(i);

                        // получаем данные
                        String id = c.getString(TAG_PID);
                        String title = c.getString(TAG_TITLE);
                        String category = c.getString(TAG_CATEGORY);

                        cinemas.add(new Cinema(Integer.valueOf(id), title,category));
                    }
                } else {
                    // no products found
                }
            } catch (JSONException e) {
                e.printStackTrace();
            }

            return null;
        }

        protected void onPostExecute(String file_url) {
            // dismiss the dialog after getting all products
            pDialog.dismiss();
            // updating UI from Background Thread
            act.runOnUiThread(new Runnable() {
                public void run() {

                    // создаем адаптер
                    cinemaAdapter = new CinemaAdapter(getContext(), cinemas);

                    // настраиваем список
                    ListView lvMain = getListView();
                    lvMain.setAdapter(cinemaAdapter);
                }
            });

        }

    }
}


приложение вываливается с ошиюкой в строке
int success = json.getInt(TAG_SUCCESS);
сама ошибка:
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int org.json.JSONObject.getInt(java.lang.String)' on a null object reference
                                                                                  at net.kinomovies.movietrailers.FilmFragment$LoadAllCinema.doInBackground(FilmFragment.java:98)
                                                                                  at net.kinomovies.movietrailers.FilmFragment$LoadAllCinema.doInBackground(FilmFragment.java:75)
                                                                                  at android.os.AsyncTask$2.call(AsyncTask.java:288)
                                                                                  at java.util.concurrent.FutureTask.run(FutureTask.java:237)
                                                                                  at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231) 
                                                                                  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) 
                                                                                  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) 
                                                                                  at java.lang.Thread.run(Thread.java:818) 

что не так?
  • Вопрос задан
  • 1713 просмотров
Подписаться 1 Оценить Комментировать
Ответ пользователя Андрей Буров К ответам на вопрос (3)
BuriK666
@BuriK666
Компьютерный псих
https://jsonformatter.curiousconcept.com/
Unicode символы должны быть экранированы с помощью \u...
Ответ написан