{
"success" : true,
"message" : "",
"result" : {
"uuid" : "e606d53"
}
}
我正在尝试阅读UUID
$obj = json_decode($execResult, true);
print_r($obj);
$UniID = $obj["result"]["uuid"];
echo $UniID; ///result Blank
答案 0 :(得分:0)
鉴于您在问题顶部包含的JSON作为输入,print_r
语句将输出:
Array
(
[success] => 1
[message] =>
[result] => Array
(
[uuid] => e606d53
)
)
但你在评论中说:
输出与我之前发布的相同
我能解释这一点的唯一方法是,你的意思是你在问题顶部包含的JSON是print_r
语句的结果。
这表明您的JSON是双重编码的。
即。有一个关联数组被编码为JSON文本。然后,该JSON文本被编码为JSON文本。
由于它被编码了两次,因此需要对其进行两次解码:
<?php
$execResult = '"{\n \"success\" : true,\n \"message\" : \"\",\n \"result\" : {\n \"uuid\" : \"e606d53\"\n }\n}"';
print "Original JSON\n\n";
print_r($execResult);
$decode_1 = json_decode($execResult, true);
print "\n\nDecoded once\n\n";
print_r($decode_1);
$decode_2 = json_decode($decode_1, true);
print "\n\nDecoded twice\n\n";
print_r($decode_2);
print "\n\$decode_2[\"result\"][\"uuid\"]\n\n";
$UniID = $decode_2["result"]["uuid"];
echo $UniID; ///result Blank
?>
哪个输出:
Original JSON
"{\n \"success\" : true,\n \"message\" : \"\",\n \"result\" : {\n \"uuid\" : \"e606d53\"\n }\n}"
Decoded once
{
"success" : true,
"message" : "",
"result" : {
"uuid" : "e606d53"
}
}
Decoded twice
Array
(
[success] => 1
[message] =>
[result] => Array
(
[uuid] => e606d53
)
)
$decode_2["result"]["uuid"]
e606d53
答案 1 :(得分:-1)
你可以尝试一下。它应该适用于您的代码。
$obj = json_decode($execResult);
echo $obj->result->uuid;
答案 2 :(得分:-2)
这样可行。当您在php中解码json数据时,您很可能将其转换为object。为了知道数据类型,您可以使用var_dump函数CMIIW
$UniID = $obj->result->uuid;
编辑:嘿,我刚刚发现您的代码在here
中正常运行