case "update":
    $file=file("Chat/Assets/file/".$room.".txt");
    $pluss=count($file); //Dosya Boyutu

        $dataes=array();
            foreach ($file as $mesaj) //satir satir degerleri okuyor
        {

                $bol=explode("\\t",$mesaj);
                $dataes[] = array( 'user' => $bol[1] ,'message' => $bol[2]  );
        }
            echo json_encode($dataes);

      break;

Bu şekilde dizi olarak dondurdugum veriler android kısmında jsonarray ile alıcam fakat dönen veri boş oluyor neden kaynakladınıyor normal verileri dizi olarak dondurmessem okuyor fakat bu şekilde boş donuyor hata nerede

soruldu: 23 Eki, 07:41

engineers's gravatar image

engineers
356517091
cevap kabul oranı: 23%


Uyguladığın PHP kodunda Array'i direkt json olarak atıyor,

[{"user":"Kaz\\u0131m","message":"Mesaj1"},{"user":"Kaz\\u0131m","message":"Mesaj2"}]

Yani gelen veri isimsiz direkt bir array, bu pek uygun bir format değil. bunu JSONArray ile alman kolay olmayabilir.

Ancak veriyi aktardığın satırda

$dataes["messages"][] = array('user' => $bol[1], 'message' => $bol[2]);

şeklinde bir düzenleme yaptığında veri

{"messages":[{"user":"Kaz\\u0131m","message":"Mesaj1"},{"user":"Kaz\\u0131m","message":"Mesaj2"}]}

şeklinde gelir. Bu şekillde de getJSonArray("messages") diyerek alabilirsin diye tahmin ediyorum.

permanent link

cevaplandı: 23 Eki, 08:39

Kaz%C4%B1m's gravatar image

Kazım
1.5k414
cevap kabul oranı: 34%

değiştirildi: 23 Eki, 08:43

dizi olarak hic donmuyor deger dediginiz gibi yaptım ama neyde sorun var bilmiyorum ama dizi bicimin de [] olan veriler bos olarak donuyor android kısmına

(23 Eki, 14:44) engineers engineers's gravatar image

Android'deki bölümün kodunu atabilir misin?

(23 Eki, 14:53) Kazım Kaz%C4%B1m's gravatar image

aşagıda paylaştım

(23 Eki, 15:31) engineers engineers's gravatar image

{

    tableLayout.removeAllViews();
    JSONArray jsonArray=new JSONArray(inco);
    for(int i=0;i<jsonArray.length();i++)
    {
        JSONObject jsonObject=jsonArray.getJSONObject(i);
        TableRow tableRow=new TableRow(this);
        TextView textView=new TextView(this);
        textView.setText(jsonObject.getString("user")+"\\t"+jsonObject.getString("message"));
        tableRow.addView(textView);
        tableLayout.addView(tableRow);
    }
inco dediğim gelen veri string türünde   bu boş geliyor dizi yapinca
bu kodda sorun olmadıgını düşünüyorum çünki php bos atıyor mesaji ama php yi şöyle değişince veriler {'user':'asda','message':'asda'}{}{} bu formatta görüyorum geliyor android e ama dizi çeklinde yapınca  gelmiyor. php:

foreach ($file as $mesaj) //satir satir degerleri okuyor
        {

            $bol=explode("\\t",$mesaj);
            $data = array( 'user' => $bol[1] ,'message' => $bol[2]  );
            echo json_encode($data);
        }
böyle olunca yukarida dediğim gibi geliyor ama  dizi şeklinde alınca olmuyor boş dönüyor.
permanent link

cevaplandı: 23 Eki, 15:30

engineers's gravatar image

engineers
356517091
cevap kabul oranı: 23%

değiştirildi: 23 Eki, 15:31

Yöntemde bir hata var. inco eğer string ise jsonArray'i stringden oluşturamazsın, önce jsonObject'e aktarıp o object üzerinden jsonArray alman lazım.

yani: JSONObject jsnobject = new JSONObject(inco); JSONArray mesajlar = jsnobject.getJSONArray("messages"); Php de de iki boyutlu array kullan. $data["messages"][] = ... şeklinde

(23 Eki, 15:47) Kazım Kaz%C4%B1m's gravatar image

dediğiniz yöntemi de yapmıştım ilk dediğinizde ama yine boş dondurdu

(23 Eki, 16:00) engineers engineers's gravatar image

Asagida attıgım sizin dediğiniz gibi sanırsam ama bos deger donduruyor

(23 Eki, 16:05) engineers engineers's gravatar image
    tableLayout.removeAllViews();
    JSONObject object=new JSONObject(inco);
    JSONArray jsonArray=object.getJSONArray("messages");
    for(int i=0;i<jsonArray.length();i++)
    {
        JSONObject jsonObject=jsonArray.getJSONObject(i);
        TableRow tableRow=new TableRow(this);
        TextView textView=new TextView(this);
        textView.setText(jsonObject.getString("user")+"\\t"+jsonObject.getString("message"));
        tableRow.addView(textView);
        tableLayout.addView(tableRow);
    }

         php :
        $dataes=array();
        foreach ($file as $mesaj) //satir satir degerleri okuyor
        {

            $bol=explode("\\t",$mesaj);
            $dataes["messages"][] = array( 'user' => $bol[1] ,'message' => $bol[2]  );
        }
        echo json_encode($dataes);

Bu kodda bos donuyor.

permanent link

cevaplandı: 23 Eki, 16:05

engineers's gravatar image

engineers
356517091
cevap kabul oranı: 23%

veride bir problem olabilir mi?

(24 Eki, 03:28) Kazım Kaz%C4%B1m's gravatar image

Hayır yukarıda dediğim gibi yolladığım da dizi olmadan verileri gore biliyorum ama bu seferde key value ayrılmıyor dizi yine encode etmede mi problem var anlamadım baska bir projede bu sekilde aktarım sorun olmamaıstı

(24 Eki, 05:36) engineers engineers's gravatar image
Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×819
×168

Soruldu: 23 Eki, 07:41

Görüntüleme: 91 kez

Son güncelleme: 24 Eki, 05:36

powered by BitNami OSQA