PHP:API中的JSON数据

PHP:API中的JSON数据,php,mysql,json,Php,Mysql,Json,下面是我从API获取的JSON数据示例(我确实更改了值): {"status":"OK","data":{"trends":{"uv":[{"date":"201303","value":1},{"date":"201304","value":2},{"date":"201305","value":31},{"date":"201306","value":4},{"date":"201307","value":4},{"date":"201308","value":9},{"date":"201

下面是我从API获取的JSON数据示例(我确实更改了值):

{"status":"OK","data":{"trends":{"uv":[{"date":"201303","value":1},{"date":"201304","value":2},{"date":"201305","value":31},{"date":"201306","value":4},{"date":"201307","value":4},{"date":"201308","value":9},{"date":"201309","value":12},{"date":"201310","value":43},{"date":"201311","value":14},{"date":"201312","value":73},{"date":"201401","value":78},{"date":"201402","value":65},{"date":"201403","value":52}]},"trends_low_sample":false,"query_cost":13,"trends_frequency":"monthly"}}
在PHP中如何访问data.trends.uv[number\u the\u array].date中的值

以下是我玩过的一些东西:

$data1 = file_get_contents('/home/strj500/Downloads/result.html');
//echo $data1;

$theData = json_encode($data1);

//$data1 = preg_replace('/,\s*([\]}])/m', '$1', utf8_encode($data1));

//$data1 = utf8_encode($data1);

$result1 = json_decode($theData);

echo $result1->status;

//var_dump($result1);

//echo json_last_error();

//echo error_log();

//echo error_reporting(E_ALL);

/*foreach ($result1->data->trends->rank as $rank
{
    echo "{$rank->date}\n";
}*/

//echo $result1["data"]["trends"]["uv"];
可能还有另一个问题,如果我想稍后在PHP中访问JSON,存储它的最佳文件格式是什么?(JSON、TXT、HTML)?如果有用的话,我还将在mysql上传递这个json数据。

像这样循环

<?php
$json='{"status":"OK","data":{"trends":{"uv":[{"date":"201303","value":1},{"date":"201304","value":2},{"date":"201305","value":31},{"date":"201306","value":4},{"date":"201307","value":4},{"date":"201308","value":9},{"date":"201309","value":12},{"date":"201310","value":43},{"date":"201311","value":14},{"date":"201312","value":73},{"date":"201401","value":78},{"date":"201402","value":65},{"date":"201403","value":52}]},"trends_low_sample":false,"query_cost":13,"trends_frequency":"monthly"}}';
$yourobj=json_decode($json);
foreach($yourobj->data->trends->uv as $k=>$arr)
{
    echo $arr->date."<br>";
}

使用json_decode()并将第二个参数设置为true:

$result1 = json_decode($theData,true);
您将能够像普通数组一样访问所有元素。例如,如果您想获取某些特定数据,您可以这样做(在本例中,我们需要索引0):


您可以将json存储为.js格式,也可以通过java脚本(以及其他语言)读取json。您还可以将其存储为mysql(当然,在使用mysqli_escape_字符串进行转义之后)
$result1 = json_decode($theData,true);
$result1['data']['trends']['uv'][0];