0

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です。$result 変数を再エンコードせずにクライアントに返すにはどうすればよいですか?

このコードを使用して、$resultkeysJSON を応答に追加しようとしています。私は近くにいると感じていますが、まだです。構文エラーが発生します。

 $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;
4

2 に答える 2

0
return $response->write('{"json":"message"}')
          ->withHeader('Content-Type', 'application/json');

ストリームに直接書き込むだけで、適切なコンテンツタイプを設定することを忘れないでください:)

于 2016-07-22T15:42:05.327 に答える