2017-12-05 13 views
0

私はjsonオブジェクトを持っています。 jsonオブジェクトをデコードした後に値を取得する必要があります。Jsonからのデータの取得

ただし、一部の値は空白です。これは、私がフェッチしている方法にエラーをもたらします。

親切に以下を参照してください。

$json = '{ 
    "Customers": { 
    "IdentityStrings": [ 
     { 
     "UniqueSystemIdentifier": "202000000000007004", 
     "MSISDN": "211920494162", 
     "FirstName": "Donald", 
     "MiddleName": { 

     }, 
     "LastName": "Twesiga", 
     "DateOfBirth": "2000-01-01", 
     "DateIdentityActivated": "20170816153810", 
     "DateIdentityRegistered": "20170816153448", 
     "OperatorNameRegisteredBy": { 

     }, 

     } 
    ] 
    }, 
}'; 

値を取得するには、次のようにjsonをデコードしてフェッチします。いくつかは、この場合MiddleNameOperatorNameRegisteredByのように空になったときに

$jsonData = json_decode($json); 

    foreach ($jsonData->Customers->IdentityStrings[0] as $key => $value) { 

     $UniqueSystemIdentifier = ($jsonData->Customers->IdentityStrings[0]->UniqueSystemIdentifier); 
     $MSISDN = ($jsonData->Customers->IdentityStrings[0]->MSISDN); 
     $FirstName = ($jsonData->Customers->IdentityStrings[0]->FirstName); 
     $MiddleName = ($jsonData->Customers->IdentityStrings[0]->MiddleName); 
     $LastName = $jsonData->Customers->IdentityStrings[0]->LastName; 
     $DateOfBirth = $jsonData->Customers->IdentityStrings[0]->DateOfBirth; 
     $OperatorNameRegisteredBy = $jsonData->Customers->IdentityStrings[0]->OperatorNameRegisteredBy; 


    } 

問題が来ます。

値がある場合とそうでない場合はどうすれば取得できますか?

ありがとうございます。

+1

あなたのjsonは無効です。不確かな場合は、** [jsonlint.com](http://jsonlint.com)**に貼り付けてください。 – YvesLeBorg

+0

@YvesLeBorg彼は部分的なJsonを貼り付けただけだと思う​​し、末尾のカンマを削除するのを忘れてしまったと思う。 – mega6382

答えて

3

エラーを取り除くために三項条件を使用してください。

$MSISDN = (isset($jsonData->Customers->IdentityStrings[0]->MSISDN) && !empty($jsonData->Customers->IdentityStrings[0]->MSISDN))? $jsonData->Customers->IdentityStrings[0]->MSISDN : ""; 

したがって、すべての値が同じです。

関連する問題