【发布时间】:2015-06-01 15:11:42
【问题描述】:
我有一段 php 可以检索 JSON 字符串:
$login = "http://$server/auth/login/$username/$password";
$json = file_get_contents($login);
收到的 JSON 是这样的:
{
"Return":{
"Type":"auth.login",
"ResponseSummary":{
"StatusCode":0,
"ErrorMessage":""
},
"Results":{
"SessionID":"fejqciel23dcjqvsumjdplq6s6",
"User":{
"Id":"*****",
"AccountId":"*****",
"FirstName":"*****",
"LastName":"******",
"Email":"*****@*****.***",
"UserName":"*****@*****.***",
"Group":"3",
"Language":"English",
"Measurement":"Imperial",
"Timezone":"Etc\/GMT+8",
"MsgFlag":"0",
"Pincode":"",
"Phone":"",
"TerminationDate":null,
"DaylightSavings":"0",
"AcceptedWebsiteHardwareTc":"0",
"APIContractAccepted":null,
"DisplayNotice":"1",
"NoticeInterval":"1 day",
"TemporaryPassword":false,
"Roles":[3, 11],
"UserCode":******,
"AccountName":"*****@*****.***",
"CustomAttributes":[]
},
"AccountLastChangeDate":"2015-05-27 06:13:28"
}
}
}
我正在尝试解析 SessionID。这是我唯一需要的一点。我在这里关注了其他几篇关于 SO 的文章,但要么一无所获,要么出现错误。
我尝试过的几件事:
$jsondata = json_decode($json, true);
echo $jsondata['Return'][0]['Results'][0]['User'][0]['SessionID'];
和
$jsondata = json_decode($json);
echo $jsondata->Return[0]->Results[0]->User[0]->SessionID;
以及这些的许多变体。我要么一无所获,要么出现各种错误。
提取 SessionID 的正确方法是什么?
我已经使用几个 string.explode 语句破解了它,但我更愿意正确地做到这一点。
谢谢!
【问题讨论】: