如何使用此JSON响应


How do I consume this JSON response?

我试图将从API响应中获得的一些JSON附加到电子邮件中,并希望将JSON输出到HTML表中。问题是JSON响应与我以前使用过的任何响应都不一样。

$vs_getClickPath = wp_remote_get('url');
$clickPath_body = wp_remote_retrieve_body( $vs_getClickPath );
$notification['message'] .= $clickPath_body;

这给了我以下信息:

[
  ["date'/time", "page name visited", "city", "region", "country", "company name'/isp", "identity", "search'/referral"],
  ["2016-05-17 10:56:05", "Home Page", "Buffalo", "New York", "United States", "I-evolve Technology Services", "", ""]
]

在一个数组中,所有键都先出现,然后在另一个数组显示值。尝试使用索引只获取单个字符,foreach不起作用。我尝试过json_decode,但它不输出print_rvar_dump的任何内容。

无论如何,我是否能够循环浏览并将数据输出到HTML表中?第一个数组是表头,之后的每个数组都是表行。

我使用了json_decode($str, true),它返回了一个可以使用的数组:

$str = '[["date'/time","page name visited","city","region","country","company name'/isp","identity","search'/referral"],["2016-05-17 10:56:05","Home Page","Buffalo","New York","United States","I-evolve Technology Services","",""]]';
$json = json_decode($str, true);
echo '<pre>';
print_r($json);

返回

Array
(
    [0] => Array
        (
            [0] => date/time
            [1] => page name visited
            [2] => city
            [3] => region
            [4] => country
            [5] => company name/isp
            [6] => identity
            [7] => search/referral
        )
    [1] => Array
        (
            [0] => 2016-05-17 10:56:05
            [1] => Home Page
            [2] => Buffalo
            [3] => New York
            [4] => United States
            [5] => I-evolve Technology Services
            [6] => 
            [7] => 
        )
)

在对json_decode()的调用中设置true会使函数返回一个数组。如果您不想要一个数组,您可以通过在调用中保留该选项来返回一个卑鄙的数组。

PHP的json_decode()

从您的输出中,结果是数组的数组

[
[
"date'/time", "page name visited", "city", "region", "country", "company name'/isp", "identity", "search'/referral" ], [
"2016-05-17 10:56:05", "Home Page", "Buffalo", "New York", "United States", "I-evolve Technology Services", "", "" ] ]

您可以在foreach中找到带有foreach的值。

foreach ($clickPath_body as $array) { foreach ($array as $string) { echo $string; } echo "<br>"; }