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

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

Δημοσ.

Καλησπέρα,

 

Προσπαθώ να κατεβάσω το κουπόνι από τον ΟΠΑΠ με json. Η διαδικασία γίνεται με java.

Κατάφερα να αντλήσω κάποιες πληροφορίες  σχετικά εδώ :

 

http://x.22071.n7.nabble.com/json-td4630.html

 

οι οποίες είναι λειψές. Δε με ενδιαφέρουν τα αποτελέσματα προς το παρόν, με ενδιαφέρουν μόνο οι αποδόσεις. Προσπαθώ να διαβάσω το json που δημιουργείται στη σελίδα

 

https://jsonlint.com/  

 

για να εξάγω χαρακτηριστικά και άλλες πληροφορίες, αλλά δε βγάζω άκρη. Μπορεί κάποιος να με κατατοπίσει σχετικά με τα marketIds αλλά και άλλες πληροφορίες;

 

Επίσης περί Json : Υπάρχει τρόπος χωρίς να ξέρεις το σχήμα του, να εξάγεις τα χαρακτηριστικά του;

Δημοσ.

Καλησπέρα,

 

Προσπαθώ να κατεβάσω το κουπόνι από τον ΟΠΑΠ με json. Η διαδικασία γίνεται με java.

Κατάφερα να αντλήσω κάποιες πληροφορίες  σχετικά εδώ :

 

http://x.22071.n7.nabble.com/json-td4630.html

 

οι οποίες είναι λειψές. Δε με ενδιαφέρουν τα αποτελέσματα προς το παρόν, με ενδιαφέρουν μόνο οι αποδόσεις. Προσπαθώ να διαβάσω το json που δημιουργείται στη σελίδα

 

https://jsonlint.com/

 

για να εξάγω χαρακτηριστικά και άλλες πληροφορίες, αλλά δε βγάζω άκρη. Μπορεί κάποιος να με κατατοπίσει σχετικά με τα marketIds αλλά και άλλες πληροφορίες;

 

Επίσης περί Json : Υπάρχει τρόπος χωρίς να ξέρεις το σχήμα του, να εξάγεις τα χαρακτηριστικά του;

 

Αφού το κάνεις με java , γιατί μπλέκεις με json και μετατροπή σε κλάση και δεν φτιάχνεις κατευθείαν ένα ws-client με java να τα έχεις όλα έτοιμα? Το είχα κάνει πριν κανα χρόνο για χαβαλέ , αν είσαι εξοικειωμένος σε 10 λεπτά έχεις έτοιμο τον client.

Δημοσ.

Αφού το κάνεις με java , γιατί μπλέκεις με json και μετατροπή σε κλάση και δεν φτιάχνεις κατευθείαν ένα ws-client με java να τα έχεις όλα έτοιμα? Το είχα κάνει πριν κανα χρόνο για χαβαλέ , αν είσαι εξοικειωμένος σε 10 λεπτά έχεις έτοιμο τον client.

 

Όχι δεν είμαι εξοικειωμένος, αν θες δώσε κανένα λινκ για tutorial όμως, έχω διάθεση για διάβασμα.

 

Ws εννοείς web services έτσι; Αν ναι, έχω λίγες μέρες που ξεκίνησα να διαβάζω ένα βιβλίο για Rest.

Δημοσ.

Όχι δεν είμαι εξοικειωμένος, αν θες δώσε κανένα λινκ για tutorial όμως, έχω διάθεση για διάβασμα.

 

Ws εννοείς web services έτσι; Αν ναι, έχω λίγες μέρες που ξεκίνησα να διαβάζω ένα βιβλίο για Rest.

 

Ναι μπορείς αρκετά εύκολα με ένα eclipse , 

αν και λίγο παλιός οδηγός πιστεύω θα είσαι οκ

http://www.eclipse.org/webtools/community/education/web/t320/Generating_a_client_from_WSDL.pdf

Δημοσ.

Ναι μπορείς αρκετά εύκολα με ένα eclipse , 

αν και λίγο παλιός οδηγός πιστεύω θα είσαι οκ

http://www.eclipse.org/webtools/community/education/web/t320/Generating_a_client_from_WSDL.pdf

 

Δοκίμασα τον οδηγό, έχω κάποια θέματα : Αν και εγκατέστησα τα απαραίτητα, δε μου εμφανίζει την επιλογή για New -> Web Service Client.

 

Εκτός από αυτό, αν κοιτάξεις στη σελίδα του ΟΠΑΠ, δεν έχει web service για το Πάμε Στοίχημα (έτσι λέει τουλάχιστον) :

 

http://www.opap.gr/el/web/guest/web-services

  • 2 μήνες μετά...
Δημοσ.

 

Αυτό μπορεί να είναι χρήσιμο json formatter

 

 

Σε ευχαριστώ που το ανέφερες, θα πόσταρα έτσι και αλλιώς.

 

Το συγκεκριμένο δε με βόλεψε, αυτό με βόλεψε καλύτερα :

 

https://jsonformatter.org/json-pretty-print

 

Λοιπόν, δεν ξέρω αν εγώ δεν πιάνω κάτι ή ο ΟΠΑΠ κάνει κάτι στραβά. Δίνοντας εντολή για ένα τυχαίο json στον ΟΠΑΠ με αγώνες και αγορές κάποιες ημερομηνίες, βλέπω το εξής, πχ στο κάτω json :

 

http://praktoreio.pamestoixima.gr/web/services/rs/iFlexBetting/retail/games/15104/0.json?shortTourn=true&startDrawNumber=731&endDrawNumber=731&sportId=s-441&marketIds=68&marketIds=0&&marketIds=19&marketIds=20&marketIds=21&marketIds=8&locale=gr&brandId=defaultBrand&channelId=0

 

Αν το κάνεις pretty στη σελίδα που έδωσα, στη γραμμή 364 περίπου ξεκινάνε τα resources, που είναι οι λεπτομέρειες του αγώνα, ομάδες, χώρα κλπ. Παρατηρώντας κάποιος, βλέπει ότι η αφηρημένη κλάση, είναι το ίδιο το αντικείμενο (αν δεν κάνω λάθος, γιατί δεν είμαι τόσο εξοικειωμένος με σύνταξη json). Πχ έχω τίτλο "tm-40896" που είναι κωδικός ομάδας, ενώ θα έπρεπε να είναι πχ "Ομάδα1". 

Αυτό επαναλαμβάνεται σε όλο το json.

Αυτό μου το επιβεβαίωσαν και όλα τα εργαλεία για c++ και java που υπόδειξαν συμφορουμίτες, καθώς μου εμφάνιζαν καμιά 200 κλάσεις για ομάδες...

Αν κάνω λάθος κάπου, ας υποδείξει κάποιος.

Δημοσ.

Βάλε το http://praktoreio.pamestoixima.gr/web/services/rs/iFlexBetting/retail/games/15104/0.json?shortTourn=true&startDrawNumber=731&endDrawNumber=731&sportId=s-441&marketIds=68&marketIds=0&&marketIds=19&marketIds=20&marketIds=21&marketIds=8&locale=gr&brandId=defaultBrand&channelId=0

σε Firefox και όταν στο ανοίξει ως json βάλε φίλτρο το tm-40896

Σου βγάζει κλειστό το 0 στοιχείο του πίνακα (το json που έδωσες είναι ένας πίνακας, ξεκινάει με [ και τελειώνει με ]), οπότε όταν το ανοίξεις θα σου δώσει lexicon: μέσα σε αυτό το resources: και σε αυτό το tm-40896_sh: και το tm-40896: ενώ ποιο κάτω στο επίπεδο που είναι το resources θα σου δώσει το ai: "tm-40896"  που σηαίνει ότι το ai το οποίο βρίσκεται σε όλα τα αντικείμενα του αρχικού πίνακα, έχει το όνομα, εδώ το tm-40896 και βάσει αυτού πάει στο lexicon.recources.tm-40896 και παίρνει το όνομα "ΠΑΛΕΣΤΙΝΟ"

Βάλε το "ΟΛ στο φίλτρο και θα δεις ότι σου βρίσκει άμεσα τα αντικείμενα που το περιέχουν και ονόματα όπως ΟΛΙΜΠΙΚ κ.α.

Δημοσ.

Θα σου πω λίγο τι εννοώ παραπάνω:

 

Βάζω το λινκ με το json στη σελίδα http://json2csharp.com/ που έδωσε ο albnik παραπάνω.

Βλέπω λοιπόν διάφορες κλασεις και ξεκινώ:

 

-Κλάση RootObject, που αν δεν κάνω λάθος είναι όλα τα objects με τη μορφή που εμφανίζονται στον ff, σύνολο 280 και περιέχει αντικείμενο τύπου Lexicon.

-Κλάση Lexicon που περιέχει αντικείμενο τύπου Resources.

-Κλάση Resources, που αντί να έχει αντικείμενα τύπου Game ας πούμε, έχει πεδία τύπου String και ο προσδιορισμός είναι το ίδιο το όνομα του αντικειμένου.

Παράδειγμα, να έχεις μία κλάση Person και τα πεδία του αντί να είναι Name, Age κλπ, να είναι John,35 κλπ. 

 

Δες επίσης την κλάση Hpp που εμφανίζεται πάνω-πάνω και είναι σωστή. Αυτή η κλάση αποθηκεύει με κάποια κωδικοποίηση τα γκολ της γηπεδούχου σε ημίχρονο και τελικό αποτέλεσμα (αν θυμάμαι καλά, αν και δεν έχει σημασία σε αυτό που θα πω).

Πολύ σωστά, βλέπεις πεδία με όνομα από 1-10. Αντικείμενα αυτής της κλάσης επαναλαμβάνονται 280 φορές, όσα και τα ματς. Κάτι που δε συμβαίνει με το Resources που εμφανίζει ως πεδία ΟΛΑ τα tm των ομάδων που συμμετέχουν στο κουπόνι.

Δημοσ.

Κοίτα το json δεν σημαίνει ότι "δείχνει" κλάσεις. Ότι θες βάζεις, ή σε διάταξη αριθμητική, οπότε είναι πίνακας, ή με ονόματα οπότε το λέει κλάση. Η κλάση δηλαδή που λες είναι απλά μια λίστα με ονόματα - τιμές. Εκεί δηλαδή που βάζεις το δείκτη για το πίνακα, βάζεις τη λέξη (ή αλφαριθμητικό). Κάποια στιγμή, πάμε σε άκρη, οπότε αυτή θα είναι null ή αριθμός ή αλφαριθμητικό. Δεν υπάρχει κάτι άλλο!

 

Γενικά πρέπει να μπεις στο μυαλό του προγραμματιστή για να καταλάβεις τι έχει κάνει! Ή καλύτερα να δεις το κώδικα!

Δημοσ.

Κοίτα το json δεν σημαίνει ότι "δείχνει" κλάσεις. Ότι θες βάζεις, ή σε διάταξη αριθμητική, οπότε είναι πίνακας, ή με ονόματα οπότε το λέει κλάση. Η κλάση δηλαδή που λες είναι απλά μια λίστα με ονόματα - τιμές. Εκεί δηλαδή που βάζεις το δείκτη για το πίνακα, βάζεις τη λέξη (ή αλφαριθμητικό). Κάποια στιγμή, πάμε σε άκρη, οπότε αυτή θα είναι null ή αριθμός ή αλφαριθμητικό. Δεν υπάρχει κάτι άλλο!

 

Γενικά πρέπει να μπεις στο μυαλό του προγραμματιστή για να καταλάβεις τι έχει κάνει! Ή καλύτερα να δεις το κώδικα!

 

Αυτό που θέλω να πω είναι ότι δε μπόρεσα να βρω μία λύση μέσα από την οπτική της αντικειμενοστρέφειας.

Δημοσ.

To json είναι μια δομή δεδομένων. Στη Java το βλέπουμε σαν αντικείμενο, και η προσπέλαση στη δομή γίνεται με ένα από τα δύο βασικά αντικείμενα:

getJSONObject σε JsonObject ή getJSONArray σε JsonArray

Μπορεί η δομή να ξεκινάει με αντικείμενο ή με πίνακα. Αυτό το αντικείμενο ΔΕΝ έχει καμία "οπτική" αντικειμενοστρέφειας. Μπορεί βέβαια κάποιος να κάνει serialisation σε κάποιο object και να το ρίξει στο json. Αλλά αυτο δεν σημαίνει ότι κάθε αντικείμενο σε json (JsonObject) είναι ένα κανονικό αντικείμενο της java. Μπορεί να είναι δυο ή περισσότερα αντικείμενα, και με συγκεκριμένο τρόπο διαβάζει ο "προγραμματιστής" διαβάζει το json και τοποθετεί τα δεδομένα σε αυτά (ή τα φτιάχνει).

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

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

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

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

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

Σύνδεση

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

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