Прошу помощи с 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)
что не так?