我正在尝试反序列化从mssql返回的JSON数组:
[
{
"Cust_id":38,
"Contact_id":159,
"Installer":true,
"Supervisor":true,
"Admin":true,
"Token":"26754782238745DD4B7FEFA375FD5160"
}
]
我正在使用的PHP代码:
$user_data = json_decode($response['body'], true);
//$response['body'] being the json returned from mssql
但是,如果我尝试打印$user_data[0]
,则会得到输出:
381591113C93986662D8AABBCC420C196F821D7E
这是JSON的值,但是是串联的。
我尝试了几种组合都无济于事,其他所有查询都返回了没有数组包装器的情况,反序列化很好。
任何帮助将不胜感激!
答案 0 :(得分:2)
我试图反序列化您提供的数组,并在输出的第0个索引处打印值。 结果似乎很好。
$arrayFromSql = '[
{
"Cust_id":38,
"Contact_id":159,
"Installer":true,
"Supervisor":true,
"Admin":true,
"Token":"26754782238745DD4B7FEFA375FD5160"
}
]';
$decodedArray = json_decode($arrayFromSql, true);
var_dump($decodedArray[0]);
输出:
array(6){
[
"Cust_id"
] => int(38) [
"Contact_id"
] => int(159) [
"Installer"
] => bool(true) [
"Supervisor"
] => bool(true) [
"Admin"
] => bool(true) [
"Token"
] => string(32) "26754782238745DD4B7FEFA375FD5160"
}bool(true)
答案 1 :(得分:1)
有效。
$body='[
{
"Cust_id":38,
"Contact_id":159,
"Installer":true,
"Supervisor":true,
"Admin":true,
"Token":"26754782238745DD4B7FEFA375FD5160"
}
]';
$user_data = json_decode($body, true);
print_r($user_data[0]);
输出
Array ([
Cust_id
]=> 38[
Contact_id
]=> 159[
Installer
]=> 1[
Supervisor
]=> 1[
Admin
]=> 1[
Token
]=> 26754782238745DD4B7FEFA375FD5160 )