Edited at

[Laravel]レスポンスをJSON形式で返す方法2つ

More than 3 years have passed since last update.


LaravelではレスポンスをJSON形式で返す方法2つある


response()->json()

まずは公式ドキュメント(5.1LTS)に記載されている方法。


jsonメソッドは自動的にContent-Typeヘッダーをapplication/jsonにセットし、同時に指定された配列をjson_encode PHP関数によりJSONへ変換します。


public function index()

{
return response()->json(['apple' => 'red', 'peach' => 'pink']);
}

これにより

{

'apple':'red',
'peach':'pink'
}

がレスポンスされる。

ドキュメントになるとおり、

Content-Typeもちゃんとapplication/jsonにしてくれる。


配列をreturnする

そして、もう1つの方法。

例えばこんなコードがあるじゃろ。

public function index()

{
return ['apple' => 'red', 'peach' => 'pink'];
}

んでレスポンスは、、、

{

'apple':'red',
'peach':'pink'
}

こうなる。

加えてContent-Typeもちゃんとapplication/jsonにしてくれる。


まとめ

JSON形式で返す時は「配列をreturnする」方法にしてます。

Laravelってこうゆう事ができるからやめられない、止まらない。