【Laravel】jsonで返す
基本
json()がjson_encodePHP関数の役割も担う。
code:php
return response()->json([
'name' => 'Abigail',
'state' => 'CA',
]);
Laravelで実装するなら
code:php
// url?パラメータの形で条件をつけたいなら、Requestモデルを使って取得しておく
public function getPost(Request $request) {
$posts = Post::get();
$rtn = [];
foreach ($posts as $p) {
$rtn[] = [
'post_id' => $p->post_id,
...
];
}
return response()->json($rtn);
}
jsonから取得してみる
Laravelではなく、PHPのビルトイン関数(内部関数)で賄える
code:php
public function getJson() {
$json_raw_data = file_get_contents($url); // 生データ取得
$json_convert_data = mb_convert_encoding($json_raw_data, 'UTF8', 'ASCII,JIS,UTF-8,EUC-JP,SJIS-WIN'); // 対象, 返還希望の文字コード, 対象の現在の文字コード
//-------------- falseにするとobject(コレクション型?)で返ってくる
$array = json_decode($json_convert_data, false);
//-------------- trueにするとarray型で返ってくる
$array = json_decode($json_convert_data, false);
}
自分のサーバーにHTTP Requestを送る場合
ローカル環境だと動かないことがある
code:php
$url_path = route('api_post');
$param = '?item=';
$item_num = 10;
$url = $url_path . $param . $item_num;
$json_raw_data = file_get_contents($url);
// 127.0.0.1など、localhost環境だと取得できなくなるので注意