praegune kellaaeg 03.06.2024 14:30:00
|
Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
sõnum |
|
Dev Grex
HV Guru
liitunud: 29.07.2012
|
19.06.2016 23:47:54
JSON and PHP (decode) |
|
|
Hei
Oleks vaja natuke abi. Vajalik on väljastada andmed vastavalt 'name' atribuudile. Hetkel 'something3' väärtust kuvan nii:
$value = $json->stats->stats[2]->value;
|
See ei paista eriti usaldusväärne ja oleks soov kuvada väärtus mitte järjekorra numbri järgi, vaid selle järgi mis on name lahtris. Põhimõtteliselt soovin lahendada seda kuidagi nii:
$value = $json->stats->stats[something3]->value;
|
Tean, et nii seda ei tehta. Püüdsin leida abi erinevatelt saitidelt, kuid kuna ei osanud probleemi õigesti lahti kirjutada, siis abi ei leidnud.
JSON:
{
"stats": {
"ID": "16561198023364040",
"Name": "TestApp260",
"stats": [
{
"name": "something1",
"value": 32835
},
{
"name": "something2",
"value": 31956
},
{
"name": "something3",
"value": 2189656
}
|
Oskab keegi tark mind juhendada või sõna sekka öelda? Oleksin väga tänulik.
|
|
Kommentaarid: 343 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
1 :: |
293 |
|
tagasi üles |
|
|
riaak
HV Guru
liitunud: 22.09.2002
|
|
Kommentaarid: 118 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
1 :: |
104 |
|
tagasi üles |
|
|
iceincube
HV veteran
liitunud: 18.11.2005
|
19.06.2016 23:59:00
|
|
|
Tegin natuke koodi ka siis juba:
1 variant:
$value = '';
foreach($json->stats->stats as $k=> $item){
if($item->name == 'something3'){
$value = $item->value;
}
} |
Teine variant funktsiooniga (võimalus ka saada need muud väärtused kätte):
$value = get_value_via_name_attribute( $json->stats->stats, 'something3', '' );
function get_value_via_name_attribute( $stat, $keyName, $default ){
foreach($stat as $k=> $item){
if($item->name == $keyName){
return $item->value;
}
}
return $default;
} |
viimati muutis iceincube 20.06.2016 09:08:52, muudetud 1 kord |
|
Kommentaarid: 39 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
0 :: |
37 |
|
tagasi üles |
|
|
LKits
HV Guru
liitunud: 06.09.2007
|
20.06.2016 09:03:50
|
|
|
Oot, aga kui sa ei sisesta päringus ID-d, siis kust kohast programmike teab, mis ID-d (ja alamelemente) soovid lugeda?
Sest kui olen õigesti aru saanud, siis ID on sul unikaalne ehk siis, kui soovid "something3" lugeda, pead sisestama ka ID.
Kui soovid lugeda kõikide ID-de "something3", siis pead lihtsalt läbi loop-ima.
EDIT: Või kui sul ainult üks ID ongi, siis unusta ära mu jutt.
Aga jah, eelnevad postitused annavad ülevaate, kuidas läbi loop-ida.
_________________ itLahendused - Arvutite remont ja hooldus, veebilehtede loomine, soodne veebimajutus. Võta ühendust! Tel: +372 555 268 97 ja e-post info@itlahendused.ee |
|
Kommentaarid: 13 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
0 :: |
13 |
|
tagasi üles |
|
|
Dev Grex
HV Guru
liitunud: 29.07.2012
|
20.06.2016 12:06:16
|
|
|
LKits kirjutas: |
Oot, aga kui sa ei sisesta päringus ID-d, siis kust kohast programmike teab, mis ID-d (ja alamelemente) soovid lugeda?
Sest kui olen õigesti aru saanud, siis ID on sul unikaalne ehk siis, kui soovid "something3" lugeda, pead sisestama ka ID.
Kui soovid lugeda kõikide ID-de "something3", siis pead lihtsalt läbi loop-ima.
EDIT: Või kui sul ainult üks ID ongi, siis unusta ära mu jutt.
Aga jah, eelnevad postitused annavad ülevaate, kuidas läbi loop-ida. |
Tegemist on API'ga. Igal API omanikul on oma ID, ehk siis jah, ID on koguaeg ainult üks ja see sama.
Tänud, alustuseks oligi just see mis vaja
iceincube kirjutas: |
Tegin natuke koodi ka siis juba:
1 variant:
$value = '';
foreach($json->stats->stats as $k=> $item){
if($item->name == 'something3'){
$value = $item->value;
}
} |
|
Käiku läks esimene variant, kuna lihtsuses peitub võlu. Tekkis ainult küsimus, et kas on ilmtingimata vaja alguses määrata Value muutujale tühi sõne?
Suured tänud kõigile kaasamõtlejatele. Alustasin alles eile JSON võimaluste uurimist ja täna on juba kõik vajalik üleval. Super
|
|
Kommentaarid: 343 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
1 :: |
293 |
|
tagasi üles |
|
|
iceincube
HV veteran
liitunud: 18.11.2005
|
20.06.2016 12:19:07
|
|
|
Ei ole vaja tegelikult. See on mul nn default value puhuks kui ei leia vastet.
|
|
Kommentaarid: 39 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
0 :: |
37 |
|
tagasi üles |
|
|
Dev Grex
HV Guru
liitunud: 29.07.2012
|
20.06.2016 14:19:11
|
|
|
iceincube kirjutas: |
Ei ole vaja tegelikult. See on mul nn default value puhuks kui ei leia vastet. |
Selge. Suured tänud
|
|
Kommentaarid: 343 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
1 :: |
293 |
|
tagasi üles |
|
|
|
lisa lemmikuks |
|
|
sa ei või postitada uusi teemasid siia foorumisse sa ei või vastata selle foorumi teemadele sa ei või muuta oma postitusi selles foorumis sa ei või kustutada oma postitusi selles foorumis sa ei või vastata küsitlustele selles foorumis sa ei saa lisada manuseid selles foorumis sa võid manuseid alla laadida selles foorumis
|
|
Hinnavaatlus ei vastuta foorumis tehtud postituste eest.
|