-1

次のエラーがあります

Notice:  Trying to get property of non-object in action.php

投稿されたjsonが検証されている間(jsonLint.com検証による)。

これが私のjson文字列です:

[
{
    "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"
}
]

私のphpコードは次のとおりです。

$gelenJsonVerisi = $_POST['yeniEvrak'];
echo($gelenJsonVerisi);
$yeniEvrakObj = json_decode($gelenJsonVerisi);

exit($yeniEvrakObj->{'eTGid'});

どこで私は間違えましたか?

提案後:

  1. Json 文字列がサーバー側 (php) に配列 (括弧の間) として到着しました。
  2. 配列には、json 文字列 (オブジェクト) である要素 (メンバー) が 1 つだけあります。
  3. 配列の最初の要素を処理し、php オブジェクトに割り当てて処理します。

    $gelenJsonVerisi = $_POST['yeniEvrak'];
    $yeniEvrakObjArray = json_decode($gelenJsonVerisi,TRUE);
    $yeniEvrakObj = $yeniEvrakObjArray[0];
    exit($yeniEvrakObj['eTGid']); // one of sample value
    

    ありがとうございました

4

4 に答える 4

2
$gelenJsonVerisi = $_POST['yeniEvrak'];
echo($gelenJsonVerisi);
$yeniEvrakObj = json_decode($gelenJsonVerisi);
exit($yeniEvrakObj[0]->eTGid);
于 2013-07-18T08:15:10.897 に答える
-1

問題は、配列内にあるため、デコードされたオブジェクトにアクセスしようとしている方法です。コードは次のようになります。

$gelenJsonVerisi = $_POST['yeniEvrak'];
echo($gelenJsonVerisi);
$yeniEvrakObj = json_decode($gelenJsonVerisi);

exit($yeniEvrakObj[0]->eTGid);

編集:私が間違っていたことを私に見せてくれたこの回答へのコメントをありがとう

于 2013-07-18T08:16:03.573 に答える