Php 使用HTTP_请求-响应内容
我有一个Php 使用HTTP_请求-响应内容,php,json,http-request,Php,Json,Http Request,我有一个HTTP\u Request2\u Response变量,当我使用$Response->getBody()进行回显时,该变量会给出以下信息: {"results":["element1","element2","element3"],"id":"elementID"} 是否有任何方法可以获取每个元素,如$respons[“id”]?有没有办法将这些结果转换成json对象?当然可以json\u decode()是您正在寻找的函数: <?php $str = "{\"results
HTTP\u Request2\u Response
变量,当我使用$Response->getBody()
进行回显时,该变量会给出以下信息:
{"results":["element1","element2","element3"],"id":"elementID"}
是否有任何方法可以获取每个元素,如
$respons[“id”]
?有没有办法将这些结果转换成json对象?当然可以json\u decode()
是您正在寻找的函数:
<?php
$str = "{\"results\":[\"element1\",\"element2\",\"element3\"],\"id\":\"elementID\"}";
$obj = json_decode($str);
print_r($obj);
?>
由于它作为对象返回,因此可以作为公共成员访问元素。换句话说:$obj->id
将为您提供'elementID'
或作为数组:
$array = json_decode($str, true);
print_r($array);
产生:
stdClass Object
(
[results] => Array
(
[0] => element1
[1] => element2
[2] => element3
)
[id] => elementID
)
Array
(
[results] => Array
(
[0] => element1
[1] => element2
[2] => element3
)
[id] => elementID
)
echo$array['id']
提供elementID
非常感谢,但是如果元素(element1,element2,…)的数量未知且其计数可能不同,该怎么办。有没有更灵活的方法来获得它们?这取决于你想做什么。您应该像处理任何其他长度未知的数组一样处理它。我不想手动编辑字符串,然后获取其json文件,我想定义一个模式,例如,定义我有“results”和“id”的值,然后使用类似results[0]的内容获取它们的值。没有手动编辑任何字符串。我将字符串作为函数工作方式的演示。您可以使用以下命令:json\u decode($response->getBody())
,并将is视为一个对象(或数组,带有额外的参数)。