Soru & Cevap

Arkadaşlar Çok acil

20.06.2014 - 03:52

Androidde bir PHP dosyasından Json Parser ile verileri çekiyorum program emulator de düzgün çalısırken projeyi imzalayıp telefonda çalıstırmak istediğimde Json parser butonuna tıkladıgımda program durduruldu hatası alıyorum.... aynı projede birde image gallery butonu var projeyi açıp önce image gallery butonuna basıp geri gelip tekrar json parser butonuna bastığımda veriler geliyor lütfen yardım cok acil log ları aşagıda paylaşıyorum...

26 Görüntülenme

10 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

Profile picture for user burak23
burak23
20.06.2014 - 11:13

teşekkür ederim kardeş yordum seni

Onur
23.12.2016 - 04:43
Selam Burak, yemek listesini .xml veya .php de nasıl yazdın örnek verebilir misin? Yardımını rica ediyorum. Teşekkür ederim.
Burak
23.12.2016 - 09:00
Tam olarak ne yapmak istediğini sölersen yardımcı olurum
Onur
23.12.2016 - 11:21
Benimde şirketime ait uygulama projem var ve içerisinde yemekhaneye ait de sayfa koymak istiyorum ama ne kadar uğraştıysam yemek listesini çekemedim. Bana bu konuda yardımcı olabilir misin nasıl yazabiliriz.
Burak
23.12.2016 - 11:31
Json kullanabilirsin bununla ilgili internette çok fazla döküman var bi dene takıldığın yerde yardımcı olırum
Onur
23.12.2016 - 11:46
zaten kullandım da tam istediğim gibi olmadı. sonra buradaki yazıya denk geldim. İşin yetişmesi için az zaman kaldığı için senin burada yaptığın uygulama gibi yapsam durumu kurtarmak için yeterli olacaktır. Bu yüzden nasıl yaptığını merak ettim.
Burak
24.12.2016 - 12:05
Ben burdaki koddan farklı bi kod kullanmıstım yazalıda cok oldu tam hatırlamıyorum önce jsonla bütün veriyi almayı dene daha sonra yukarıda yaptığım gibi tarih tanımla json daki date parametresi ile tanımladığın tarihi birbirine eşitle. Kodlar yanımda değil olsa sana verirdim dediğim gibi uzun zaman oldu yazalı biraz uğraş yapamazsan tekrar görüşelim sana kodları veririm
Onur
24.12.2016 - 10:49
Aslında kodları paylaşabilirsen çok iyi olur çünkü vakit dar ve ancak tamamlarım. mailden göndermen mümkün olur mu > onurgsmtest@gmail.com
Burak
24.12.2016 - 11:17
dediğim gibi kodlar yanımda değil bulabilirsem gönderrim ancak kendin yaparsan senin içşn daha iyi olur selametle
picture-1372-1408467635.jpg
ahmtbrk
20.06.2014 - 10:31

bak güzel kardeşim aynı hatayı bende aldım ve uygulamayı telefonumda test ettim zaten.

MainActivity Kodları

[code]

package com.ahmetburak.jsonyemek;

import android.os.StrictMode;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;

import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;


public class MainActivity extends ActionBarActivity {

    private final String JSON_URL = "http://takvim.amasya.edu.tr/burak.php";
    ArrayList<YemekMenu> menuList;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();

        StrictMode.setThreadPolicy(policy);
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        menuList = new ArrayList<YemekMenu>();

        String str = "";
        HttpResponse response;
        HttpClient myClient = new DefaultHttpClient();
        HttpPost myConnection = new HttpPost(JSON_URL);

        try {
            response = myClient.execute(myConnection);
            str = EntityUtils.toString(response.getEntity(), "UTF-8");

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

        try{
            JSONArray jArray = new JSONArray(str);
            for (int i = 0; i < jArray.length(); i++)
            {
                try {
                    JSONObject jsonObject = jArray.getJSONObject(i);
                    String kalori = jsonObject.getString("kalori");
                    String corba = jsonObject.getString("corba");
                    String anayemek = jsonObject.getString("anayemek");
                    String date = jsonObject.getString("date");
                    String meyve = jsonObject.getString("meyve");
                    String yemek = jsonObject.getString("yemek");
                    menuList.add(new YemekMenu(kalori, corba, anayemek, date, meyve, yemek));
                }catch(JSONException e){

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

        Log.d("MainActivity",String.valueOf(menuList.size()));

    }
}

[/code]

 

Buda YemekMenu

[code]

package com.ahmetburak.jsonyemek;

/**
 * Created by Ahmet Burak on 20.6.2014.
 */
public class YemekMenu {
    private String kalori,corba,anayemek,date,meyve,yemek;

    public YemekMenu(String kalori, String corba, String anayemek, String date, String meyve, String yemek) {
        this.kalori = kalori;
        this.corba = corba;
        this.anayemek = anayemek;
        this.date = date;
        this.meyve = meyve;
        this.yemek = yemek;
    }

    public String getKalori() {
        return kalori;
    }

    public void setKalori(String kalori) {
        this.kalori = kalori;
    }

    public String getCorba() {
        return corba;
    }

    public void setCorba(String corba) {
        this.corba = corba;
    }

    public String getAnayemek() {
        return anayemek;
    }

    public void setAnayemek(String anayemek) {
        this.anayemek = anayemek;
    }

    public String getDate() {
        return date;
    }

    public void setDate(String date) {
        this.date = date;
    }

    public String getMeyve() {
        return meyve;
    }

    public void setMeyve(String meyve) {
        this.meyve = meyve;
    }

    public String getYemek() {
        return yemek;
    }

    public void setYemek(String yemek) {
        this.yemek = yemek;
    }
}

[/code]

Profile picture for user burak23
burak23
20.06.2014 - 08:10

malesef hocam eclipse de çalışıyor zaten sorun telefona atınca oluyor

picture-1372-1408467635.jpg
ahmtbrk
20.06.2014 - 08:02

içeri bi try daha atacaksın ve catch yazacaksın suan pc'imde kod yazacak yer yok ezbere yazdım calısır inş.

[code]

import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.os.Bundle;
 import android.app.Activity;
import android.view.Menu;
import android.widget.TextView;

public class Yemeklistesi extends Activity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.yemekmenu);
         
         
         
         
        TextView date = (TextView) findViewById(R.id.xxxx);
        TextView corba = (TextView) findViewById(R.id.xxxx);
        TextView anayemek = (TextView) findViewById(R.id.xxx);
        TextView yemek = (TextView) findViewById(R.id.xxxx);
        TextView meyve = (TextView) findViewById(R.id.xxxx);
        TextView kalori = (TextView) findViewById(R.id.xxxx);
 
         
        JSONObject json = null;
        String str = "";
        HttpResponse response;
        HttpClient myClient = new DefaultHttpClient();
        HttpPost myConnection = new HttpPost("url");
         
        try {
            response = myClient.execute(myConnection);
            str = EntityUtils.toString(response.getEntity(), "UTF-8");
             
        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        
        
        SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy");
        String currentDateandTime = sdf.format(new Date());
         
        
        
        
          Date Curdate =null;
         
          Date Yemekdate =null;
      
        String dateInString = "07/06/2013";
     
        try {
     
               Curdate = sdf.parse(currentDateandTime);
     
        } catch (ParseException e) {
            e.printStackTrace();
        }
     
        
     
        
        
        try{
            JSONArray jArray = new JSONArray(str);
           
          
            
            
            
            
            
            for (int i = 0; i < jArray.length(); i++)
            {
                try{
                 json = jArray.getJSONObject(i);
                
            
           
                  
            try {
                         
                           Yemekdate = sdf.parse( json.getString("date"));
                          
               
                  } catch (ParseException e) {
                      e.printStackTrace();
                  }
                  
                
                 if(Curdate.getDate()==Yemekdate.getDate()    )
                 {
                    
                      date.setText(json.getString("date"));
                      corba.setText(json.getString("xxxx"));
                      anayemek.setText(json.getString("xxxx"));
                      yemek.setText(json.getString("xxx"));
                      meyve.setText(json.getString("xxx"));
                      kalori.setText(json.getString("xxx"));
                
                 }
                }
                
                
            }catch(JSONException e){
            
            }
             
           } catch ( JSONException e) {
            e.printStackTrace();               
        }
         
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
 
}

[/code]

Profile picture for user burak23
burak23
20.06.2014 - 07:36

hocam hata verdi bende tam kodu gonderirmisin

picture-1372-1408467635.jpg
ahmtbrk
20.06.2014 - 05:14

Sorunu buldum arada 1 tane null değer fırlıyor oda obje oluşturamayıp patlıyor.try - catch ile hallettim meseleyi.

[code]

 [{"kalori":"190 Kalori","corba":"Sehriye Corba","anayemek":"fasulye","date":"18.06.2014","meyve":"salata","yemek":"pilav"},{"kalori":"190 Kalori","corba":"Sehriye Corba","anayemek":"Kuru Fasulye","date":"19.06.2014","meyve":"Salata","yemek":"Pirinc Pilavi"},{"kalori":"1074 Kalori","corba":"EZOGELIN CORBA","anayemek":"ISLIM  KEBAP","date":"20.06.2014","meyve":"AYRAN","yemek":"PIRINC PILAVI"},{"kalori":"980 Kalori","corba":"SEHRIYE CORBA","anayemek":"IZMIR KOFTE","date":"23.06.2014","meyve":"MEYVE","yemek":"PIRINC PILAVI"},{"kalori":"1025 Kalori","corba":"MERCIMEK CORBA","anayemek":"TAVUK SINITZEL","date":"24.06.2014","meyve":"SALATA","yemek":"PEYNIRLI MAKARNA"},{"kalori":"1059 Kalori","corba":"DOMATES CORBA","anayemek":"PATLICAN KEBAP","date":"25.06.2014","meyve":"AYRAN","yemek":"PIRINC PILAVI"},{"kalori":"1120 Kalori","corba":"KREMALI MANTAR CORBA","anayemek":"ETLI TAZE FASULYE","date":"26.06.2014","meyve":"TATLI","yemek":"BULGUR PILAVI"},{"kalori":"1114 Kalori","corba":"DUGUN CORBA","anayemek":"FIRIN PATATES","date":"27.06.2014","meyve":"YOGURT","yemek":"BARBUNYA P�LAK�"},{"kalori":"980 Kalori","corba":"DUGUN CORBA","anayemek":"ETLI TURLU","date":"30.06.2014","meyve":"MEYVE","yemek":"BULGUR PILAVI"},null]

[/code]

dikkat edersen en son bi null var.

Çözüm şöyle

[code]

try{
            JSONArray jArray = new JSONArray(str);
            for (int i = 0; i < jArray.length(); i++)
            {
                try {
                    JSONObject jsonObject = jArray.getJSONObject(i);
                    String kalori = jsonObject.getString("kalori");
                    String corba = jsonObject.getString("corba");
                    String anayemek = jsonObject.getString("anayemek");
                    String date = jsonObject.getString("date");
                    String meyve = jsonObject.getString("meyve");
                    String yemek = jsonObject.getString("yemek");
                    menuList.add(new YemekMenu(kalori, corba, anayemek, date, meyve, yemek));
                }catch(JSONException e){

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

[/code]

ben test etmek için YemekMenu diye bi sınıf yazıp ondan liste tutup ona yükledim verileri sorunsuz 9 tane veri yüklendi.try-catch i bu sekilde ikili yap hem array hemde object için.

Burak
20.06.2014 - 07:36
hocam hata verdi bende tam kodu gonderirmisin
picture-1372-1408467635.jpg
ahmtbrk
20.06.2014 - 04:20

urlyide verebilir misin kodu bi kendi pc'imde deneyeceğim

Burak
24.02.2016 - 10:42
url
Profile picture for user burak23
burak23
20.06.2014 - 04:04

php dosyasındaki veriyi bugünün tarihine göre çekiyorum hocam

Profile picture for user burak23
burak23
20.06.2014 - 04:03

import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.os.Bundle;
 import android.app.Activity;
import android.view.Menu;
import android.widget.TextView;

public class Yemeklistesi extends Activity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.yemekmenu);
         
         
         
         
        TextView date = (TextView) findViewById(R.id.xxxx);
        TextView corba = (TextView) findViewById(R.id.xxxx);
        TextView anayemek = (TextView) findViewById(R.id.xxx);
        TextView yemek = (TextView) findViewById(R.id.xxxx);
        TextView meyve = (TextView) findViewById(R.id.xxxx);
        TextView kalori = (TextView) findViewById(R.id.xxxx);
 
         
        JSONObject json = null;
        String str = "";
        HttpResponse response;
        HttpClient myClient = new DefaultHttpClient();
        HttpPost myConnection = new HttpPost("url");
         
        try {
            response = myClient.execute(myConnection);
            str = EntityUtils.toString(response.getEntity(), "UTF-8");
             
        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        
        
        SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy");
        String currentDateandTime = sdf.format(new Date());
         
        
        
        
          Date Curdate =null;
         
          Date Yemekdate =null;
      
        String dateInString = "07/06/2013";
     
        try {
     
               Curdate = sdf.parse(currentDateandTime);
     
        } catch (ParseException e) {
            e.printStackTrace();
        }
     
        
     
        
        
        try{
            JSONArray jArray = new JSONArray(str);
           
          
            
            
            
            
            
            for (int i = 0; i < jArray.length(); i++)
            {
                 json = jArray.getJSONObject(i);
                
            
           
                  
            try {
                         
                           Yemekdate = sdf.parse( json.getString("date"));
                          
               
                  } catch (ParseException e) {
                      e.printStackTrace();
                  }
                  
                
                 if(Curdate.getDate()==Yemekdate.getDate()    )
                 {
                    
                      date.setText(json.getString("date"));
                      corba.setText(json.getString("xxxx"));
                      anayemek.setText(json.getString("xxxx"));
                      yemek.setText(json.getString("xxx"));
                      meyve.setText(json.getString("xxx"));
                      kalori.setText(json.getString("xxx"));
                
                 }
                
                
            }
             
             
          
             
             
        } catch ( JSONException e) {
            e.printStackTrace();               
        }
         
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
 
}

 

picture-1372-1408467635.jpg
ahmtbrk
20.06.2014 - 04:00

jsonda sorun var gibi istersen json parse ederken googlenin gson kütüphanesini kullanmanı öneririm.

kaynak kodlarını paylaşır mısın?

Burak
20.06.2014 - 04:14
hocam kodları aşağıda paylaştım