Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπερα

 

Συνεχιζω πειραματισμους με jQuery και τσεκαρω την $.getJSON.

 

Εχω λοιπον αυτο

$('#letter-b').click(function(e) {
  e.preventDefault();
  $.getJSON('b.js', function(data,status){
     $('#dictionary').html(data.term+" - "+status);
     }
  );
});

και το b . js ειναι

[
	{
        "term": "BACCHUS",
        "part": "n.",
        "definition": "A convenient deity invented by the...",
        "quote": [
        "Is public worship, then, a sin,",
        "That for devotions paid to Bacchus",
        "The lictors dare to run us in,",
        "And resolutely thump and whack us?"
        ],
        "author": "Jorace"
	}
]

Οταν ομως το τρεχω, περνω σαν απαντηση

 

undefined - success

 

Συγνώμη γιατι θα μου στριψει, πως κανουμε parse ενα json πραμα ? Το data θελουμε και μετα το ονομα του key , δλδ term. Επισης δοκιμασα data[term] ή data["term"]. Αλλα και παλι τιποτα, undefined μου γραφει.

Να, ειδες, αυτες οι λεπτομερειες μου τη δινουν!

 

Πως πρεπει να ειναι η συνταξη για να δω τις τιμες? 

 

Ευχαριστω

Δημοσ.

Αν δεν κάνω λάθος, το b.js δεν περιέχει ένα αντικείμενο, αλλά έναν πίνακα ( [ ] ) με ένα μοναδικό στοιχείο (object).

Για δοκίμασε είτε να βγάλεις τα [ ] από το b.js είτε να αλλάξεις τον κώδικά σου σε:

$('#dictionary').html(data[0].term+" - "+status);
  • Like 1
Δημοσ.

Σωστός, βέβαια ο πίνακας καλά κάνει και υπάρχει αν δεν ξέρεις ότι θα πάρεις ένα στοιχείο σαν απάντηση, οπότε προτιμάς iteration σε ότι σου επιστρέψει (έβαλα και ένα random quote από εκεί μια και παίζεις, δεν είμαι σίγουρος ότι θα δουλέψει έτσι)

$.each(data, function(i){
 $('#dictionary').append(data[i].term + '<br />Random quote: ' + data[i].quote[Math.random() * data[i].quote.length] + '<br />');
}

οπότε και append, όχι  html γιατί θα αντικαθιστά το ένα το άλλο και θα μείνει το τελευταίο.

  • Like 1

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...