Erçin Dedeoğlu
Erçin Dedeoğlu

Reputation: 5383

getJSON and each method not working fine

I'm trying to parse json data to my page.

But have a problem, let me exaplain:

Current javascript method:

<script>
    function updateTitlesArea() {
        $.getJSON("/3harf/baslik/sol-basliklari-getir")
            .done(function(data) {
                $("#titlesDiv").empty();
                $("#pagesDiv").empty();
                $.each(data, function(i, item) {
                        alert("da");
                        $("#titlesDiv").html($("#titlesDiv").html() +
                            "<li><a href=\"/" + item.title.replace(/> /g, '-') + "\">" + item.Title + "</a></li>");
                    }
                );
            });
    }
</script>

Json:

[{"TotalPageCount":9},{"TotalTitleCount":199},{"Title":"kola"},{"Title":"yilmaz ozdil"},{"Title":"dvd"},{"Title":"truly madly deeply"},{"Title":"deportivo de la coruna"},{"Title":"sizi seven kisiyle sevdiginiz kisinin farkli olmasi"},{"Title":"kadinlarin bavul gibi canta tasimalari"},{"Title":"hosbuldum"},{"Title":"sark cibani"},{"Title":"mevsimler gecerken"},{"Title":"bir kerede kolon gibi sicmak"},{"Title":"gelismek"},{"Title":"faz ve alasim bilimi"},{"Title":"memetq"},{"Title":"ogrencilerin sinav kagidina dustugu ilginc notlar"},{"Title":"cami duvarina isemek"},{"Title":"kufurden sonra tovbe etmek"},{"Title":"gida tarim ve hayvancilik bakanligi"},{"Title":"cevre orman ve sehircilik bakanligi"},{"Title":"google da nikah masasi calmak"}]

It's problem is, host proccessing first Json term "{"TotalPageCount":9}" and then stopped the proccess of each method.

Could you correct my method and javascript please? I would like to get TotalPageCount and TotalTitleCount too..

Thanks a lot

UPDATE

geek helped for the solution;

But I would like to ask if it is right solution, I changed some:

    <script>
        function updateTitlesArea() {
            $.getJSON("/3harf/baslik/sol-basliklari-getir")
                .done(function(data) {
                    var totalPageCount = 0;
                    var totalTitleCount = 0;
                    $("#titlesDiv").empty();
                    $("#pagesDiv").empty();
                    for (var key in data) {
                        var current = data[key];
                        if (current.hasOwnProperty('TotalPageCount'))
                        {
                            //console.log(current.TotalPageCount);
                            totalPageCount = current.TotalPageCount;
                        }
                        else if (current.hasOwnProperty('TotalTitleCount')) {
                            //console.log(current.TotalTitleCount);
                            totalTitleCount = current.TotalTitleCount;
                        }
                        else if (current.hasOwnProperty('Title'))
                        {
                            //console.log(current.Title);
                            $("#titlesDiv").html($("#titlesDiv").html() + "<li><a href=\"/" + current.Title.replace(/ /g, '-') + "\"" +
                                "tips=\"[strong]başlığı açan:[/strong] " + current.OwnerNickName + "[br /][strong]son yazan:[/strong] " + current.LastNickName + "[br /][strong]son güncellenme:[/strong] " + current.LastDate + "\">" + current.Title + "</a></li>");
                        }
                    }
                });
        }
    </script>

Latest JSON

[{"TotalPageCount":9},{"TotalTitleCount":199},{"Title":"kola","OwnerNickName":"vroslav","LastNickName":"truly madly deeply","LastDate":"2 yıl 7 ay"},{"Title":"yilmaz ozdil","OwnerNickName":"bandistabolivya","LastNickName":"truly madly deeply","LastDate":"2 yıl 7 ay"},{"Title":"dvd","OwnerNickName":"sonejee","LastNickName":"nobrain","LastDate":"2 yıl 7 ay"},{"Title":"truly madly deeply","OwnerNickName":"markovian engineer","LastNickName":"truly madly deeply","LastDate":"2 yıl 7 ay"},{"Title":"deportivo de la coruna","OwnerNickName":"sonejee","LastNickName":"nobrain","LastDate":"2 yıl 7 ay"},{"Title":"sizi seven kisiyle sevdiginiz kisinin farkli olmasi","OwnerNickName":"vasili ivanov","LastNickName":"truly madly deeply","LastDate":"2 yıl 7 ay"},{"Title":"kadinlarin bavul gibi canta tasimalari","OwnerNickName":"nobrain","LastNickName":"truly madly deeply","LastDate":"2 yıl 7 ay"},{"Title":"hosbuldum","OwnerNickName":"truly madly deeply","LastNickName":"truly madly deeply","LastDate":"2 yıl 7 ay"},{"Title":"sark cibani","OwnerNickName":"truly madly deeply","LastNickName":"truly madly deeply","LastDate":"2 yıl 7 ay"},{"Title":"mevsimler gecerken","OwnerNickName":"nobrain","LastNickName":"nobrain","LastDate":"2 yıl 7 ay"},{"Title":"bir kerede kolon gibi sicmak","OwnerNickName":"nobrain","LastNickName":"truly madly deeply","LastDate":"2 yıl 7 ay"},{"Title":"gelismek","OwnerNickName":"nobrain","LastNickName":"nobrain","LastDate":"2 yıl 7 ay"},{"Title":"faz ve alasim bilimi","OwnerNickName":"necronaught","LastNickName":"necronaught","LastDate":"2 yıl 7 ay"},{"Title":"memetq","OwnerNickName":"nobrain","LastNickName":"memetq","LastDate":"2 yıl 7 ay"},{"Title":"ogrencilerin sinav kagidina dustugu ilginc notlar","OwnerNickName":"nobrain","LastNickName":"lagbturkey","LastDate":"2 yıl 7 ay"},{"Title":"cami duvarina isemek","OwnerNickName":"nobrain","LastNickName":"nobrain","LastDate":"2 yıl 7 ay"},{"Title":"kufurden sonra tovbe etmek","OwnerNickName":"nobrain","LastNickName":"nobrain","LastDate":"2 yıl 7 ay"},{"Title":"gida tarim ve hayvancilik bakanligi","OwnerNickName":"truly madly deeply","LastNickName":"truly madly deeply","LastDate":"2 yıl 7 ay"},{"Title":"cevre orman ve sehircilik bakanligi","OwnerNickName":"truly madly deeply","LastNickName":"truly madly deeply","LastDate":"2 yıl 7 ay"},{"Title":"google da nikah masasi calmak","OwnerNickName":"nobrain","LastNickName":"memetq","LastDate":"2 yıl 7 ay"}]

Could you check it about performance of the browser etc? Thanks a lot!

Upvotes: 0

Views: 101

Answers (1)

santosh singh
santosh singh

Reputation: 28652

I tried your code and found that error is in replace method.because the first two item does not have "Title" property.I have created a simple demo using your json data

http://jsbin.com/ewUYuqa/1/edit

< script >
    function updateTitlesArea() {
        $.getJSON("/3harf/baslik/sol-basliklari-getir")
            .done(function (data) {
                $("#titlesDiv").empty();
                $("#pagesDiv").empty();
                $.each(data, function (i, item) {
                    var currentItem = item[i];
                    if (currentItem.hasOwnProperty('TotalPageCount'))
                        console.log(currentItem.TotalPageCount);
                    else if (currentItem.hasOwnProperty('TotalTitleCount'))
                        console.log(currentItem.TotalTitleCount);
                    else {

                        $("#titlesDiv").html($("#titlesDiv").html() +
                            "<li><a href=\"/" + item.title.replace(/> /g, '-') + "\">" + item.Title + "</a></li>");
                    }
                });
            });
} < /script>

Upvotes: 1

Related Questions