Soru & Cevap

Jquery ile json datalarını kategorisine göre listeleme

12.07.2016 - 05:08

Arkadaşlar merhaba, json konusunda türkçe kaynak çok fazla malesef yok, olanlar da birbirinin kopyası niteliğinde.

Sorum şu.

$.ajax({
type: "POST",
url: "Deneme.aspx/GetTheDeneme",
data: '{id: "'+id+'"}',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: OnSuccess,
  failure: function (response) {
   alert(response.d);
  },
  error: function (response) {
   alert(response.d);
  }
});

yukarıdaki şekilde ajax ile veri çekiyorum.


 

{"Result":[            
{"Kategori":"Aksiyon", "FilmAdi":"Film Adı 1","Basrol":"Oyuncu 1"}, 
{"Kategori":"Macera",  "FilmAdi":"Film Adı 2","Basrol":"Oyuncu 2"}, 
{"Kategori":"Macera",  "FilmAdi":"Film Adı 3","Basrol":"Oyuncu 3"}, 
{"Kategori":"Dram",    "FilmAdi":"Film Adı 4","Basrol":"Oyuncu 1"}, 
{"Kategori":"Aksiyon", "FilmAdi":"Film Adı 5","Basrol":"Oyuncu 2"}, 
{"Kategori":"Dram",    "FilmAdi":"Film Adı 6","Basrol":"Oyuncu 3"}, 
{"Kategori":"Gerilim", "FilmAdi":"Film Adı 7","Basrol":"Oyuncu 1"}, 
{"Kategori":"Polisiye","FilmAdi":"Film Adı 8","Basrol":"Oyuncu 2"}, 
{"Kategori":"Aksiyon", "FilmAdi":"Film Adı 9","Basrol":"Oyuncu 3"}, ]}

Bana yukarıdaki gibi veri geliyor. Ben bunu bir siteden alıntı yaparak aşağıdaki gibi olmasını sağladım

{"Result":[
                    {"Aksiyon":[
                        {"FilmAdi":"Film Adı 1","Basrol":"Oyuncu 1"},
                        {"FilmAdi":"Film Adı 2","Basrol":"Oyuncu 2"},
                        {"FilmAdi":"Film Adı 3","Basrol":"Oyuncu 3"}
                    ]},
                    {"Gerilim":[
                        {"FilmAdi":"Film Adı 4","Basrol":"Oyuncu 1"},
                        {"FilmAdi":"Film Adı 5","Basrol":"Oyuncu 2"},
                        {"FilmAdi":"Film Adı 6","Basrol":"Oyuncu 3"}
                    ]},
                    {"Macera":[
                        {"FilmAdi":"Film Adı 7","Basrol":"Oyuncu 1"},
                        {"FilmAdi":"Film Adı 8","Basrol":"Oyuncu 2"},
                        {"FilmAdi":"Film Adı 9","Basrol":"Oyuncu 3"}
                    ]}
                            ]}

Ancak bu verileri bir türlü html elementine yazamadım.

var groups = {};

                $.each(d, function (i, item) {
                    var grup_adi = item.filmtur_adi;

                    delete item.filmtur_adi;

                    if (groups[grup_adi]) {
                        groups[grup_adi].push(item);
                    } else {
                        groups[grup_adi] = [item];
                    }
                });

                var result = $.map(groups, function (group, key) {
                    var obj = {};
                    obj[key] = group;
                    return obj;
                });

Verileri bir türlü alamadım dönen result değerinden undefined yada object şeklinde basıyor her seferinde sayfaya.

384 Görüntülenme

2 Cevap

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

picture-80267-1462970706.jpg
kerdoqan0
25.02.2018 - 12:09

Merhaba,

Aşağıdaki şekilde json yapısında bir dosyam var benim istediğim jquery ile "name" : Sağlık başlığına tıkladığımda altında "models" bilgilerini gösterebileceğim bir yapı istiyorum.Diğer başlıklara tıkladığımda da bir önceki içerik kapanması gerekiyor. Yardımlarınızı bekliyorum.

{
    "benefitgroup": [
      {
        "id":  "1",
        "name": "Saglik",
        "models": [ "Kendim icin saglik paketi", "Ailem icin Saglik paketi", "cocugum icin saglik paketi" ],
        "modelID":["1.1","1.2","1.3"] ,
        "price": [ "3333", "4444", "750" ],
        "status": [ ]
      },
      {
        "id":  "2",
        "name": "BES",
        "models": [ "Aylik 1000", "Aylik 500", "Aylik 200" ],
         "modelID":["2.1","2.1","2.3"] ,
        "price": [ "1000", "500", "200" ],
        "status": [ ]
      },
      {
        "id":  "3",
        "name": "Alisveris ceki",
        "models": [ "Giyim ceki", "Tatil ceki" ],
         "modelID":["3.1","3.2"] ,
        "price": [ "500", "1000" ],
        "status": [ ]
      }
    ]
}

picture-11052-1576825910.jpg
alikarakoc
13.07.2016 - 01:11

Merhaba Gökhan

En aşağıda ki jquery kodları ile ne yapmak istediğini tam olarak çözemedim fakat istediğin şey sanırım tam olarak şu

Görsel kaldırıldı.

Kod örneği

    $.ajax({
        dataType: 'JSON',
        url: "Deneme.aspx/GetTheDeneme",
        type: "POST",
        data: '{id: "' + id + '"}',
        contentType: "application/json; charset=utf-8",
        success: function (data) {
            $("#sonuc").append("Kategoriler <br>");
            $.each(data, function (key, value) {
                $.each(value, function (key, value) {
                    $.each(value, function (key, value) {
                        $("#sonuc").append(" -" + key + "<br>");
                        $.each(value, function (key, value) {
                            $("#sonuc").append(" -- Film Adı : " + value["FilmAdi"] + " Başrol : " + value["Basrol"] + "" + "<br>");
                        })
                    });
                });
            });
        },
        error: function () {
        }
    });

Bu kod ile yukarıda ki şemayı elde edebilirsin.

İstersen kategoriye tıklandığı zaman alt kategorileride gösterte bilirsin geliştirmek sana kalmış bir şey.

Kolay gelsin.