【Laravel】apiで一覧取得結果のjsonを返したら、ダブルクォーテーションがエスケープされた
事象
Eloquentを使い検索結果のリストをjsonに変換後、return response()->json
で返却したところvalue部分のダブルクォーテーションがエスケープされました。
"result": "[{\"id\":2,\"status_type\":-10,\"name\":\"aaaaa\"…]"
本当はこんな風に返してほしいのですが
"result": "[{"id":2,"status_type":-10,"name":"aaaaa"…]"
環境
Laravel Framework 8.43.0
PHP 7.3.24-(to be removed in future macOS) (cli) (built: May 8 2021 09:40:34) ( NTS )
解決策
一覧取得時に->toJson()を使ったのが駄目?だったようです
こんな感じで書いていました。
$items = Hoge::select()->orderBy('created_at', 'desc')->get()->toJson();
下の書き方で上手く行きました。
$items = Hoge::select()->orderBy('created_at', 'desc')->get();
json_encode($items);
理由はよくわかりません。
Author And Source
この問題について(【Laravel】apiで一覧取得結果のjsonを返したら、ダブルクォーテーションがエスケープされた), 我々は、より多くの情報をここで見つけました https://qiita.com/matsumotoM/items/4c20d1a7b6635d945f01著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .