我有一个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;
}
问题出现时有些人是空的,例如MiddleName
和OperatorNameRegisteredBy
。
如果他们有值,我该如何获取?
谢谢。
答案 0 :(得分:3)
使用三元条件以便您可以摆脱错误;
$MSISDN = (isset($jsonData->Customers->IdentityStrings[0]->MSISDN) && !empty($jsonData->Customers->IdentityStrings[0]->MSISDN))? $jsonData->Customers->IdentityStrings[0]->MSISDN : "";
所有值都是一样的。