Yerel JSON Veri Kullanımı – İl İlçe JSON Örneği

Herhangi bir internet bağlantısı gerekmeksizin, internet ihtiyacı olmayan uygulamalarda lokal olarak android içinde Json veri yapısı kullanabilir.

İlk olarak, bir proje açalım ve res klasörü içinde raw adlı klasör oluşturalım.

  • Kullanmak istediğimiz JSON dosyasını, raw klasörüne atmadan önce uygun format haline getirmemiz gerekiyor. Kaynak dosyasından, sorunsuz bir şekilde okuması gerekiyor. Bunun için http://jsonviewer.stack.hu/ sitesinden kontrolu sağlayabilirsiniz.

İl ve ilçe için, Github’daki JSON dosyasını kullanabilirsiniz.

JSON için kullanım için uygun hale getirmek için, http://www.jsonschema2pojo.org sitesini açalım.

  • Package: Projenin package ismini yazıyoruz.
  • Class Name: Kullanılacak class’ın ismini yazıyoruz.
  • Diğer ayarlar ise fotoğraftaki gibi olmalı.

Preview’a bastıktan sonra class’ları kullanmak için model klasörü altında kullanabilirsiniz.

JSON verilerini kullanmak için ve class’larda kullanılan SerializedName ve Expose özelliklerini kullanmak için gson’u  gradle klasörüne ekleyip kütüphaneyi eklememiz gerekiyor. 

implementation 'com.squareup.retrofit2:converter-gson:2.0.2'

JSON Datasını Okuma Aşaması

Raw klasöründeki, JSON dosyalarını okumak için aşağıdaki kod bloğunu kullanıyoruz.

CityList cityList = new CityList();
try {
    //Load File
    BufferedReader jsonReader = new BufferedReader(new InputStreamReader(this.getResources().openRawResource(R.raw.citys)));
    StringBuilder jsonBuilder = new StringBuilder();
    for (String line = null; (line = jsonReader.readLine()) != null; ) {
        jsonBuilder.append(line).append(“\n”);
    }

    Gson gson = new Gson();
    cityList = gson.fromJson(jsonBuilder.toString(),CityList.class);

    Log.d(“Deneme”,cityList.getCityDetail().get(0).getName());


} catch (FileNotFoundException e) {
    Log.e(“jsonFile”, “file not found”);
} catch (IOException e) {
    Log.e(“jsonFile”, “ioerror”);
}

List<String> spinnerData = new ArrayList<>();

for(int i=0;i<cityList.getCityDetail().size();i++){
    spinnerData.add(cityList.getCityDetail().get(i).getName());
}

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, spinnerData);


adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

spinner.setAdapter(adapter);

Spinner ve AutoCompleteTextView ile kullanabilirsiniz uygulama son hali.

Spinner kullanımı
AutoCompleteTextView kullanımı

Son halini ve projenin kodlarına bakmak için Github hesabımdan bakabilirsiniz.

İnternet sitesi https://www.merttoptas.com
Yazı oluşturuldu 18

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Benzer yazılar

Aramak istediğinizi üstte yazmaya başlayın ve aramak için enter tuşuna basın. İptal için ESC tuşuna basın.

Üste dön
%d blogcu bunu beğendi: