繁体   English   中英

返回已格式化的JSON-Slim Framework

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM