从Json获取数据

时间:2017-12-05 12:09:02

标签: php json

我有一个json对象。我需要在解码json对象后获取值。

但是,有些值有时是空白的。这给我的提取方式带来了错误。

请参阅下面的建议。

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

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

        },

      }
    ]
  },
}';

要获取这些值,我将按照以下方式解码和获取。

$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;


    }

问题出现时有些人是空的,例如MiddleNameOperatorNameRegisteredBy

如果他们有值,我该如何获取?

谢谢。

1 个答案:

答案 0 :(得分:3)

使用三元条件以便您可以摆脱错误;

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

所有值都是一样的。