» »

Pomoč pri json datoteki

Pomoč pri json datoteki

sasha991 ::

Pozdravljeni!
Moja naloga je da za igro tetris naredim eno json datoteko, v kateri bodo zapisane stopnje/težavnosti igre. Zanima me kako bi se stavri lotil in kako bi kasneje to datoteko klical.

Hvala za pomoč

Kocka ::

Najprej moraš definirati in strukturirati podatke, katere želiš shranjevati. Pri tem JSON nima nobene zveze, to je le način zapisa podatkov.

Za Tetris bi recimo podatke grupiral za posamezne stopnje, naprimer od level-1 do level 10. Nato pa za vsak level definiraš parametre, naprimer: barva ozadja, hitrost padanja tetrinov in musko, ki igra v ozadju (ime zvočne datoteke), itd.

JSON v grobem omogoča 2 različne vrste podatkov: Array in Dictionary. Podatke se v array našteva znotraj dveh oglatih oklepajev, dictionary pa določata zavita oklepaja. Podatke se lahko strukturira tako, da je naprimer en element v arrayu kar cel dictionary, znotraj tega dictionary-ja pa je lahko en podatek spet en nov array ali pa navaden integer tip itn.

V array zapisuješ podatke/parametre, pri katerem je važen vrstni red in se naštevajo lepo po vrsti od prvega do zadnjega. Naprimer Level-1 do Level-10. Vrstni red je v naprej znan, zato se imena parametrov ne shranjujejo ampak samo njihove vrednosti. Do njih se dostopa preko indeksa, ki določa zaporedno lego parametra.

V Dictionary pa zapisuješ hkrati ime parametra in njegovo vrednost. Naprimer: "barva-ozadja"="modra", "hitrost"=10, "glasba"="music-1.mp3" Tukaj vrstni red ni važen, do podatkov se dostopa tako, da se pokliče ime parametra.

Če vse skupaj združiš, lahko v JSON datoteko zapišeš array (dva oglata oklepaja), katerega njegovi elementi predstavljajo posamezne levele od 1 do 10. Vsak tak level pa je tipa dictionary (dva zavita oklepaja) in so v njem našteti parametri, kot so barva, hitrost in glasba. Recimo takole:

[
{"barva-ozadja"="modra", "hitrost"=10, "glasba"="music-1.mp3"},
{"barva-ozadja"="zelena", "hitrost"=15, "glasba"="music-2.mp3"},
{"barva-ozadja"="rjava", "hitrost"=20, "glasba"="music-3.mp3"},
{"barva-ozadja"="rdeča", "hitrost"=25, "glasba"="music-4.mp3"},
...
]

Več o sami JSON sintaksi si lahko prebereš na Wikiju:
JSON @ Wikipedia

Kocka ::

Še klic datoteke.

Tu je stvar precej odvisna od platforme za katero je igra razvita, ter programskega jezika v katerem je program napisan. Večinoma obstajajo že narejene knjižnice za branje datotek in parsanje JSON podatkov - ne greš tega izumljat na novo. Funkcija ti navadno vrne objekt, ki je bodisi tipa Array ali pa Dictionary in potem samo prebereš podatek iz njega, ki te zanima.

Recimo, da je ta igra ena web aplikacija spisana v jQueryu. Tu pokličeš eno ajax funkcijo recion $.getJSON s parametrom URL, ki kaže na tvojo tekstovno JSON datoteko ter callback funkcijo, ki se pokliče takrat, ko je bila datoteka uspešno prebrana. V tej funkciji dobiš notri parameter "result" - to je JavaScript objekt, ki predstavlja strukturirane podatke iz tvoje JSON datoteke.

Glej primer:
http://www.w3schools.com/jquery/ajax_ge...

Blinder ::

kaj pa je ajax?
99.991% of over-25 population has tried kissing.
If you're one of the 0.009% who hasn't, copy & paste this in your Signature.
Intel i3-12100f gtx 3050 Pismo smo stari v bozjo mater. Recesija generacija

sasha991 ::

hvala za pomoč

sasha991 ::

Zdej ko sem naredil json file ki zgleda tako:
var text = '{ "stopnje" : [' +
'{ "stopnja":"Lahko","hitrost":"10" },' +
'{ "stopna":"Srednje", "hitrost":"15" },' +
'{ "stopnja":"Tezko""hitrost":"20" } ]}';

sem poskušal vključit v index.html dokument v katerem je vsa potrebna koda za tetris, mi ne naredi nič... Dokument sm vključil s tem ukazom: var obj = JSON.parse(text);+ pot do dokumenta in se ne zgodi nič.

Se komu mogoče sanja?

Kocka ::

Ali lahko prebereš podatek ven? Recimo tole:
var obj = JSON.parse(text);
alert(obj.stopnje[0].stopnja);

bi moralo bi izpisati "Lahko". Glej primer:
http://www.w3schools.com/json/json_eval...

Številk 10,15,20 ne rabiš dajati v narekovaje, razen, če hočeš, da so tipa string namesto integer.

sasha991 ::

to sm tut že probu pa igra sploh ne zaštarta... a obstaja mogoče kakšna opcija, da bi dodal neko tabelo in bi uporabnik pred začetkom igre izbral stopnjo,ki so podane v json datoteki?


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Json

Oddelek: Programiranje
212323 (862) acookook
»

php send data to private dir

Oddelek: Programiranje
5889 (628) Excavator
»

jquery ajax problem

Oddelek: Izdelava spletišč
81475 (1097) miko22
»

[js] json kompresija

Oddelek: Programiranje
223773 (3122) infiniteLoop
»

[PHP+HTML]Vprasanje glede forme s comboboxi

Oddelek: Programiranje
161451 (1270) cobrica

Več podobnih tem