PHP json_decode thrown an error for validate json string -
i have following error
notice: trying property of non-object in action.php
while posted json has validated (by jsonlint.com validation).
here json string:
[ { "etgid": "1", "etid": "34", "evrakgelistarihi": "12/12/2013", "evrakkonu": "sertifika denemesi", "evrakkurumid": "1047", "evrakcikistarihi": "13/12/2013", "evrakcikissayisi": "313213213213", "aciklamabolumu": "açıklayıcı notlar", "gelenevraktarihi": "30/12/2013", "gelenevraksayisi": "3132321", "gelenevraketakipno": "987654", "bagliilaclar": "[\"0\",\"[{\\\"ilacid\\\":\\\"744\\\",\\\"ilacpn\\\":\\\"asdasd2132\\\",\\\"ilacskt\\\":\\\"12/12/2013\\\"}]\"]", "baglifirmalar": "[\"0\",\"[{\\\"firmaid\\\":\\\"1047\\\"}]\"]", "": "[\"0\",\"[{\\\"bankaid\\\":\\\"5\\\",\\\"makbuzno\\\":\\\"asdasda\\\",\\\"makbuztarihi\\\":\\\"12/12/2013\\\",\\\"ihracaatyapilacakulkeid\\\":\\\"2\\\",\\\"ilacihracadi\\\":\\\"abfader\\\",\\\"makbuztutar\\\":\\\"202,06\\\",\\\"makbuztipdetaydegerİ\\\":\\\"10\\\"}]\",\"[{\\\"bankaid\\\":\\\"5\\\",\\\"makbuzno\\\":\\\"asdaww\\\",\\\"makbuztarihi\\\":\\\"12/12/2013\\\",\\\"ihracaatyapilacakulkeid\\\":\\\"191\\\",\\\"ilacihracadi\\\":\\\"abfadex\\\",\\\"makbuztutar\\\":\\\"202,06\\\",\\\"makbuztipdetaydegerİ\\\":\\\"9\\\"}]\"]", "baglimakbuzlar": "[\"0\",\"987654»12/12/2013»3213213\"]", "kurumicimi": "hayir" } ]
and php code is:
$gelenjsonverisi = $_post['yenievrak']; echo($gelenjsonverisi); $yenievrakobj = json_decode($gelenjsonverisi); exit($yenievrakobj->{'etgid'});
where did go wrong?
after suggestions:
- my json string has arrived serverside (php) array (between brackets).
- array has 1 element (member) our json string (object)
handle arrays first element , assign php object , deal it.
$gelenjsonverisi = $_post['yenievrak']; $yenievrakobjarray = json_decode($gelenjsonverisi,true); $yenievrakobj = $yenievrakobjarray[0]; exit($yenievrakobj['etgid']); // 1 of sample value
thank you
the json string shows array, contains single object. access data so:
$yenievrakobj = json_decode($gelenjsonverisi); echo $yenievrakobj[0]->etgid;
if you're sure there's 1 object inside array, could try:
$yenievrakobj = json_decode( substr($gelenjsonverisi,1,-1) );
which chops off leading , terminating brackets. implies no leading of trailing whitespace, trim
string first.
check codepad. can see, json_decode
call returns data array containing object:
array ( [0] => stdclass object ( [etgid] => 1 [etid] => 34 [evrakgelistarihi] => 12/12/2013 [evrakkonu] => sertifika denemesi [evrakkurumid] => 1047 [evrakcikistarihi] => 13/12/2013 [evrakcikissayisi] => 313213213213 ) )
Comments
Post a Comment