• 14 odgovora
  • 5.252 pregleda
Kako izvuci podatak iz JSON-a? 21.12.2011. u 20:33 · pre 180 meseci #1
Da li neko ima ideju kako da izvucem podakte iz JSON objekta?
Objekat dobijam na sledeci nacin:
$objekat=file_get_contents("https://graph.facebook.com/?ids=http://www.facebook.com");
$objekat=json_decode($objekat);

print_r mi pokazuje:
stdClass Object
(
[http://www.facebook.com] => stdClass Object
(
[id] => http://www.facebook.com
[shares] => 50505387
[comments] => 1067
)

)

Kako da izvucem recimo broj komentara?
Nista mi pametno na pada na pamet,probao sam preko foreach $objekat as $vrednost pa onda uzmem $vrednost->comments i to radi,ali da li je moguce da je to jedini nacin???
hvala
Re: Kako izvuci podatak iz JSON-a? 21.12.2011. u 20:44 · pre 180 meseci #2
Probaj ovako:

$objekat = json_decode($objekat, true);

Trebalo bi da dobijes asocijativni niz, pretpostavljam da to i zelis...
Nacinom na koji ti radis dobio si objekat...
Re: Kako izvuci podatak iz JSON-a? 22.12.2011. u 00:52 · pre 180 meseci #3
Pogledaj funkciju json_decode(), ona moze da prebaci json da prebaci u objekat ili ako postavis 2. parametar kao true dobijes asocijativni niz.

U principu razlika je da li ces pristupati elementima kao $objekat->element ili kao $objekat['element'] (ispravite me ako gresim).

A ako zelis da izvlacis neke elemente ili citas element po element tu uvijek moras da vrsis neku iteraciju kroz petlju koja ti najvise odgovara za to sto hoces.
Potpis
SasaKaranovic.com ~
YouTube ~
Twitter
Re: Kako izvuci podatak iz JSON-a? 22.12.2011. u 10:05 · pre 180 meseci #4
Hvala drugari,to sam prvo uradio,ali rekoh da se vratim na objekat da probam preko njega,al nece pa nece,celo jutro isprobavam sa nizom i sve on meni da kako treba,kod:
Code:
$niz=file_get_contents("https://graph.facebook.com/?ids=http://www.facebook.com");
$niz=json_decode($niz,true);
var_dump($niz);

mi daje rezultat:
array(1) {
["http://www.facebook.com"]=>
array(3) {
["id"]=>
string(23) "http://www.facebook.com"
["shares"]=>
int(50646423)
["comments"]=>
int(1070)
}
}
Ako dobro kapiram sve ovo ovo je niz,sa nizom u sebi i pokusavam da mi pridjem ali ne mogu da provalim kljuc,ime prvog elementa,mislim da se ovako izvlaci $niz[xxx][0] eventualno umesto nula id ali ono xxx mi je nepoznanica
probao sam sa http://www.facebook.com ali nije to to,bas sam zbunjen :(
Re: Kako izvuci podatak iz JSON-a? 22.12.2011. u 10:27 · pre 180 meseci #6
Ovako prilazis:

Code:

$niz = file_get_contents("https://graph.facebook.com/?ids=http://www.facebook.com");
$niz = json_decode($niz,true);

$id = $niz['http://www.facebook.com']['id'];
$shares = $niz['http://www.facebook.com']['shares'];
$comments = $niz['http://www.facebook.com']['comments'];
Re: Kako izvuci podatak iz JSON-a? 22.12.2011. u 12:19 · pre 180 meseci #7
Može i ovako:
Code:
$url = file_get_contents("http://graph.facebook.com/http://www.facebook.com");
$obj = json_decode($url);
echo $obj->comments;
Potpis
I hope I didn't brain my damage - Homer
if (wife.position == kitchen) {return sandwich};
Re: Kako izvuci podatak iz JSON-a? 14.07.2012. u 16:20 · pre 173 meseci #9
Pozdrav svima !
Da ne bih otvarao novu temu,postavicu pitanje ovde u nadi da će neko odgovoriti.
Radim na APIju jedne kineske socijalne mreže (Weibo) i problem je u izvlacenju podataka iz JSONa.

<?php
session_start();

include_once( 'config.php' );
include_once( 'saetv2.ex.class.php' );

$c = new SaeTClientV2( WB_AKEY , WB_SKEY , $_SESSION['token']['access_token'] );
//****** Fi GET_UID radi tek kad se ucita access_token umesto APP KEY **** Dokumentacija je katastrofalna i netacna !!!! ***************
$s = $_SESSION['token']['access_token'];
$url = "https://api.weibo.com/2/account/get_uid.json?access_token=$s";
$data = file_get_contents($url);
$str = json_encode($data);
var_dump($str);//************************** daje ovo string(22) ""{\"uid\":2860572254}""
$jen = json_decode($str,true);
var_dump($jen);//************************** daje ovo string(18) "{"uid":2860572254}"
$t = $jen['uid'];
var_dump($t);//****************************daje ovo string(1) "{"
print $jen;
print $t;
?>

Zašto ne mogu izvući uid kao broj?
U čemu je problem?
Molim za pomoć,hvala.
Re: Kako izvuci podatak iz JSON-a? 14.07.2012. u 19:26 · pre 173 meseci #10
Probaj ovako:

Code:

$data = '"{\"uid\":2860572254}"';
$str = trim( stripslashes( $data), '"');
$decode = json_decode($str, true);

echo $decode['uid'];
Re: Kako izvuci podatak iz JSON-a? 14.07.2012. u 19:58 · pre 173 meseci #11
Citat:
s4djan:
Probaj ovako:

Code:

$data = '"{\"uid\":2860572254}"';
$str = trim( stripslashes( $data), '"');
$decode = json_decode($str, true);

echo $decode['uid'];


Hvala Srdjane na brzom odgovoru !
iz gore navedenog koda dobijam -1434395042

Šta je u pitanju?

EDIT:
Sve vreme testiram na WAMPu, tu izbacuje -1434395042.
Sad sam uploadovao na host i tamo radi bez problema.
Hvala ti na odgovoru,šta li je problem na WAMP serveru?
Re: Kako izvuci podatak iz JSON-a? 14.07.2012. u 20:11 · pre 173 meseci #12
Stvarno nemam predstavu. Jel ti bas ovaj moj kod vrati taj rezultat ili si ga integrisao u svoj, probaj da vardampujes rezultat sta dobijes?
Re: Kako izvuci podatak iz JSON-a? 14.07.2012. u 21:30 · pre 173 meseci #13
Citat:
s4djan:
Stvarno nemam predstavu. Jel ti bas ovaj moj kod vrati taj rezultat ili si ga integrisao u svoj, probaj da vardampujes rezultat sta dobijes?


Da, to izbacuje kao rezultat u var_dampu iz tvog koda, a na hostu radi kako treba.
Sve je ukljuceno u WAMPu, ssl i ostalo.
Zaista ne znam sta je??
Hvala na trudu !
Re: Kako izvuci podatak iz JSON-a? 15.07.2012. u 01:52 · pre 173 meseci #14
Zasto radis json_encode ako ti url vec vraca json?

Code:
$data = file_get_contents($url);
$jen = json_decode($data,true);
var_dump($jen);
$t = $jen['uid'];
var_dump($t);
Potpis
xxx
mali mali mali kamičak...nebo plave boje.
In Memoriam: Madzone Zeka(15.09.2005-16.09.2005)
Re: Kako izvuci podatak iz JSON-a? 15.07.2012. u 10:47 · pre 173 meseci #15
Citat:
pajaja:
Zasto radis json_encode ako ti url vec vraca json?

Code:
$data = file_get_contents($url);
$jen = json_decode($data,true);
var_dump($jen);
$t = $jen['uid'];
var_dump($t);


Ne znam,jedino je sa encode delimično radilo na WAMPu.
Na hostu radi sve normalno,direktno sa decode.
Ako znaš šta je problem u WAMPu, molim te reci.


Hvala.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme