Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: przetwarzanie JSON w jQuery
Forum PHP.pl > Forum > XML, AJAX
sunpietro
ostatnio męczę się z JSONem w jQuery i zastanawia mnie jak przetworzyć taki plik JSON:
Kod
[
        {
            "subj":{ "uri":"http:\/\/www.strona.pl\/plik.owl#silesia_city_center" },
            "pred":{ "uri":"http:\/\/www.w3.org\/1999\/02\/22-rdf-syntax-ns#type" },
            "obj":{ "uri":"http:\/\/www.w3.org\/2002\/07\/owl#Thing" }
        }, {
            "subj":{ "uri":"http:\/\/www.strona.pl\/plik.owl#silesia_city_center" },
            "pred":{ "uri":"http:\/\/www.w3.org\/1999\/02\/22-rdf-syntax-ns#type" },
            "obj":{ "uri":"http:\/\/www.strona.pl\/plik.owl#biznes" }
        }, {
            "subj":{ "uri":"http:\/\/www.strona.pl\/plik.owl#silesia_city_center" },
            "pred":{ "uri":"http:\/\/www.w3.org\/1999\/02\/22-rdf-syntax-ns#type" },
            "obj":{ "uri":"http:\/\/www.strona.pl\/plik.owl#obiekt" }
        }, {
            "subj":{ "uri":"http:\/\/www.strona.pl\/plik.owl#silesia_city_center" },
            "pred":{ "uri":"http:\/\/www.strona.pl\/plik.owl#nr_budynku" },
            "obj":{ "label":"107", "lang":null, "dtype":"http:\/\/www.w3.org\/2001\/XMLSchema#string" }
        }, {
            "subj":{ "uri":"http:\/\/www.strona.pl\/plik.owl#silesia_city_center" },
            "pred":{ "uri":"http:\/\/www.strona.pl\/plik.owl#nazwa_obiektu" },
            "obj":{ "label":"Silesia City Center", "lang":null, "dtype":"http:\/\/www.w3.org\/2001\/XMLSchema#string" }
        }, {
            "subj":{ "uri":"http:\/\/www.strona.pl\/plik.owl#silesia_city_center" },
            "pred":{ "uri":"http:\/\/www.strona.pl\/plik.owl#opis_obiektu" },
            "obj":{ "label":"Silesia City Center jest idealnym miejscem zakup\u00f3w, spotka\u0144 towarzyskich i sp\u0119dzania wolnego czasu. To najwi\u0119ksze centrum handlowo-rozrywkowe na \u015al\u0105sku i w Zag\u0142\u0119biu.\n\nDoskonale zlokalizowane, nowoczesne, komfortowe i funkcjonalne, z przestrzennymi parkingami, a przede wszystkim bezkonkurencyjn\u0105 ofert\u0105 250 sklep\u00f3w, punkt\u00f3w handlowo-us\u0142ugowych, kawiarni i restauracji.\n\nW Silesia City Center na pow. 65 000 m kw. znajduj\u0105 si\u0119 salony presti\u017cowych i unikalnych w regionie marek, salon z najszersz\u0105 na rynku ofert\u0105 elektroniki u\u017cytkowej SATURN, a tak\u017ce ca\u0142odobowy market TESCO.", "lang":null, "dtype":"http:\/\/www.w3.org\/2001\/XMLSchema#string" }
        },    {
            "subj":{ "uri":"http:\/\/www.strona.pl\/plik.owl#silesia_city_center" },
            "pred":{ "uri":"http:\/\/www.strona.pl\/plik.owl#hasWydarzenie" },
            "obj":{ "uri":"http:\/\/www.emiasto.pl\/emiasto.owl#zaszczep_sie_w_kleszczobusie" }
        },    {
            "subj":{ "uri":"http:\/\/www.strona.pl\/plik.owl#silesia_city_center" },
            "pred":{ "uri":"http:\/\/www.strona.pl\/plik.owl#isTypBiznes" },
            "obj":{ "uri":"http:\/\/www.strona.pl\/plik.owl#centrum_handlowe" }
        },    {
            "subj":{ "uri":"http:\/\/www.strona.pl\/plik.owl#silesia_city_center" },
            "pred":{ "uri":"http:\/\/www.strona.pl\/plik.owl#hasWydarzenie" },
            "obj":{ "uri":"http:\/\/www.strona.pl\/plik.owl#honorowo_oddaj_krew" }
        },    {
            "subj":{ "uri":"http:\/\/www.strona.pl\/plik.owl#silesia_city_center" },
            "pred":{ "uri":"http:\/\/www.strona.pl\/plik.owl#hasMiasto" },
            "obj":{ "uri":"http:\/\/www.strona.pl\/plik.owl#katowice" }
        },    {
            "subj":{ "uri":"http:\/\/www.strona.pl\/plik.owl#silesia_city_center" },
            "pred":{ "uri":"http:\/\/www.strona.pl\/plik.owl#isObiektOf" },
            "obj":{ "uri":"http:\/\/www.strona.pl\/plik.owl#katowice" }
        },    {
            "subj":{ "uri":"http:\/\/www.strona.pl\/plik.owl#silesia_city_center" },
            "pred":{ "uri":"http:\/\/www.strona.pl\/plik.owl#hasUlica" },
            "obj":{ "uri":"http:\/\/www.strona.pl\/plik.owl#ul._chorzowska" }
        }
]


próbuję użyć taki kod:
Kod
$(function()
{
    $(document).ready(function()
    {
        $.getJSON("json.text",function(data)
        {
            $.each(data.subj, function(i,data)
            {
                var div_subj =
                "<div><a href='"+data.uri+"'>"+data.uri+"</a></div>";
                $(div_subj).appendTo("#wynik");
            });
            $.each(data.pred, function(i,data)
            {
                var div_pred =
                "<div><a href='"+data.uri+"'>"+data.uri+"</a></div>";
                $(div_pred).appendTo("#wynik");
            });
            $.each(data.obj, function(i,data)
            {
                var div_obj =
                "<div>"+data.label+"</div>";
                $(div_data).appendTo("#wynik");
            });
        }
    );
    return false;
});
});


Ale nic nie działa. Co tu jest źle zrobione?
piotrooo89
ale co jest źle, bo wszystko to dość obszerne zagadnienie. FireBug milczy? czy nie raczyłeś go użyć? spróbuj.
sunpietro
po prostu się nic nie dzieje, dla zupełnie inaczej zbudowanego JSONa działa ten skrypt.
Wtedy nie powtarzam metody $.each() tylko wykorzystuję raz.
Z debugowania w Firebugu nie korzystałem, bo nie do końca wiem jak.

----------------------------------

Udało się zdebugować. Wychodzi na to, że JSON jest błędny. Jak go można poprawić?
erix
Trochę Ci się pomieszało. Zrób jedną pętlę, a nie dwie:

[JAVASCRIPT] pobierz, plaintext
  1. $.getJSON("json.text",function(data)
  2. {
  3. $.each(data, function(i,d)
  4. {
  5. $(this).subj;
  6. $(this).pred;
  7. $(this).obj;
  8.  
  9. }
  10. }
[JAVASCRIPT] pobierz, plaintext
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.