2016-12-20 15 views
-5

私は私が解析しようとしているJSONデータを持っていますが、私のコードが動作しない、私はエラーに解析JSON配列は、エラーが発生します。予期しない「 - >」(T_OBJECT_OPERATOR

unexpected '->' (T_OBJECT_OPERATOR).

配列構造のルックスを取得しますこのように:。。

Array 
(
    [mautic.lead_post_save_update] => Array 
     (
      [0] => Array 
       (
        [lead] => Array 
         (
          [isPublished] => 1 
          [dateAdded] => 2016-09-15T08:08:20+00:00 
          [createdBy] => 1 
          [createdByUser] => Deepak Tiwari 
          [dateModified] => 2016-12-20T14:20:36+00:00 
          [modifiedBy] => 1 
          [modifiedByUser] => Deepak Tiwari 
          [id] => 149269 
          [points] => 100 
          [color] => 
          [fields] => Array 
           (
            [core] => Array 
             (
              [compulsation] => Array 
               (
                [id] => 39 
                [label] => Job 
                [alias] => compulsation 
                [type] => text 
                [group] => core 
                [field_order] => 2 
                [object] => lead 
                [value] => 0 

など、私は「ジョブcompultion」私が使用していたコードの値にアクセスする必要がある:

$json = file_get_contents('php://input'); 

$data=json_decode($json,TRUE); 
$job=data->mautic.lead_post_save_update->0->lead->fields->core->compulsation->value; 

$jobに値がありません。

+2

' - >' –

+0

の代わりに '[]'演算子を使って配列にアクセスするオブジェクトがない配列 – MacBooc

答えて

1

オブジェクトのプロパティ構文(->)を使用していますが、これは機能しません。あなたのコードは次のように配列構文([...])を、使用する必要があります。

エラーメッセージはあなたを教えしようとしているものです
$json = file_get_contents('php://input'); 

$data=json_decode($json,TRUE); 
$job=data['mautic.lead_post_save_update'][0]['lead']['fields']['core']['compulsation']['value']; 

。まともなIDEは、PHPStorm(所属なし)のように、このようなエラーをキャッチするのに役立ちます。

+0

ありがとう!なぜ私は使用している他のコードを持っているのですか?>アクセスするために> –

+0

@DeepakTiwari ' - >'は*オブジェクトのプロパティにアクセスする場合は正しい構文です* 。上記の 'print_r()'出力にあなたが持っているものが表示されている配列*を持っているならば、大括弧( '['と ']')を使う必要があります。 –

+0

ありがとうございます。私はPHPに新しいです。私の人生を保存するためにありがとう。私はこの15〜20時間後にこれを試していた –

0

json_decode()はオブジェクトを作成していません。配列の代わりに[]を使用して変数を取得することができます。

+0

$ job [$ martic.lead_post_save_update '] [' Lead '] [' fields ' ] ['core'] ['compulsation'] ['value']; –

+0

$ job = $ data [0] [0] [0] [10] [0] [0] [7];私は変更してアクセスしようとしましたが、まだ値がありません –

関連する問題