从api xml格式响应返回数组中获取值

时间:2015-03-19 14:37:52

标签: php arrays json api

我通过API解析来自API的xml响应。

$responseXML2 = curl_seasson($url['phemail']);
$xml2 = simplexml_load_string($responseXML2);

从xml获取值

$alltimeratio1 = $xml2->monitor['alltimeuptimeratio'];

您可以检查api here的xml格式响应。现在您可以在api响应中看到(检查附加链接),我获取alltimeuptimeratio的值,然后将其放入一个数组中,然后将其作为json_encode回显。 (参考下面的代码)

$array = array("ph" => array("phweb" => $status, "phemail" => $status2, "alltimeratio1" => $alltimeratio1));
echo json_encode($array);

假设我已经在上面的数组中存储了$ status和$ status2内容,并且当我在浏览器中运行它时得到的结果是。 (参考下面的代码)

{"ph":{"phweb":"boxup","phemail":"boxup","alltimeratio1":{"0":"99.73"}}}

我的问题是,为什么alltimeratio1是":{" 0":" 99.73}"?如果我试图回显$ alltimeratio1,我得到99.73没有0.有没有办法我只能在数组中存储99.73(没有0)?

我希望数组结构结果像这样

{"ph":{"phweb":"boxup","phemail":"boxup","alltimeratio1":"99.73"}}

任何帮助,想法,线索,建议和建议都将不胜感激。

2 个答案:

答案 0 :(得分:0)

我不知道你是如何解析XML响应的,但它似乎被视为一个数组。这就是你得到{"0":"99.73"}

的原因

我尝试使用一个简单的脚本并且运行良好,所以我认为它解决了XML的问题。

$alltimeratio1 = "99.73";

$status = $status2 = "boxup";

$array = array("ph" => array("phweb" => $status, "phemail" => $status2, "alltimeratio1" => $alltimeratio1));

echo json_encode($array);

响应:

 {"ph":{"phweb":"boxup","phemail":"boxup","alltimeratio1":"99.73"}}

答案 1 :(得分:0)

如果使用ajax解析返回响应,则可以通过识别youralltimeratio数组位置中的第二个数组键来访问该值。例如。

var thearray = new Array(result["ph"]["phweb"], result["ph"]["phemail"], result["ph"]["alltimeratio1"][0]);

或仅仅作为

var theValueOfTheAllTimeRatio = thearray[2];