我正在使用Slim Framework以JSON格式返回结果。
Class<int>
$app->get('/forecast_range/{latitude}/{longitude}/{timeStart}/{timeEnd}', function (Request $request, Response $response) {
$latitude = $request->getAttribute('latitude');
$longitude = $request->getAttribute('longitude');
$timeStart = $request->getAttribute('timeStart');
$timeEnd = $request->getAttribute('timeEnd');
$timeStart = new DateTime($timeStart);
$timeEnd = new DateTime($timeEnd);
$coordinates[] = array('latitude' => $latitude, 'longitude' => $longitude);
$forecast = new forecast_range_url($coordinates, 1, $timeStart, $timeEnd);
$result = $forecast->runForecast(true);
return $response->withJson($result);
});
变量已经是JSON,是多维的。我如何才能将$ result变量返回给客户端而无需再次编码?
我尝试使用此代码将$result
keysJSON附加到响应中。我觉得我很近但还没有。我收到了语法错误。
$result
答案 0 :(得分:0)
return $response->write('{"json":"message"}')
->withHeader('Content-Type', 'application/json');
只需将其直接写入流,并且不要忘记设置正确的内容类型:)
答案 1 :(得分:0)
我想我可以如何返回已经格式化的JSON。
我需要追加&#34;,&#34;和&#34; []&#34;到response
,否则数据将不是正确的JSON语法。
这就是我的意思:
$result = $forecast->runForecast(true);
$lenght = count($result);
for ($i=0; $i<$lenght; $i++){
if ($i == 0){
$response->write('['.$result[$i].',');
}
elseif($i == $lenght - 1)
{
$response->write($result[$i].']');
}
else
{
$response->write($result[$i].',');
}
}
$newResponse = $response->withHeader('Content-type', 'application/json; charset=utf-8');
return $newResponse;