[英]Return already formatted JSON - Slim Framework
我正在使用Slim Framework以JSON格式返回结果。
$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);
});
$result
变量已经是JSON, 是多维 JSON 了 。 我如何可以将不需要重新编码的$ result变量返回给客户端?
我试图使用此代码将$result
keysJSON追加到响应中。 我感觉很近,但还没有。 我收到语法错误。
$lenght = count($result);
for ($i=0; $i<$lenght; $i++){
$response->write($result[$i]);
}
$newResponse = $response->withHeader(
'Content-type',
'application/json; charset=utf-8'
);
return $newResponse;
return $response->write('{"json":"message"}')
->withHeader('Content-Type', 'application/json');
只需将其直接写入流中,别忘了设置适当的content-type :)
我知道如何返回已经格式化的JSON。 我需要在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;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.