在 PHP 中解析带有空格的数组键的 Json 响应

4

我有一个邮编API的响应。然而,由于两个单词之间有空格,我无法弄清楚如何获取“地名”的值。不太确定接下来该怎么做。

object(stdClass)#1 (4) {
 ["post code"]=>
 string(5) "42223"
 ["country"]=>
 string(13) "United States"
 ["country abbreviation"]=>
 string(2) "US"
 ["places"]=>
 array(1) {
   [0]=>
   object(stdClass)#2 (5) {
     ["place name"]=>
     string(13) "Fort Campbell"
     ["longitude"]=>
     string(8) "-87.5585"
     ["state"]=>
     string(8) "Kentucky"
     ["state abbreviation"]=>
     string(2) "KY"
     ["latitude"]=>
     string(7) "36.5995"
   }
 }
}

2
你考虑过使用 $array_output = json_decode($str_api_response, TRUE); 将其转换为数组,然后可以引用列访问:echo $array_output['places'][0]['place name']; - scragar
1个回答

22

您需要将它们放在花括号内,并用单引号括起来:

$place_name = $response->places[0]->{'place name'};
echo $place_name;
或者如评论中@scragar所说,如果您不习惯通过对象访问它们,您可以在json_decode($response, true)上放置一个true标志,这样您就可以将它们作为关联数组访问。

谢谢!这么简单但我却想不出来。运行得很好!等系统允许我,我会把它标记为正确答案。 - smack-a-bro

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接