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视为一个对象(或数组,带有额外的参数)。