teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

追記

2020/08/25 01:58

投稿

true_colors_20
true_colors_20

スコア25

title CHANGED
File without changes
body CHANGED
@@ -69,4 +69,9 @@
69
69
  さらに気づいたことが、
70
70
  `print_r($getRecipe)`を実行すると、データの最後に1がつき、
71
71
  `print_r($getRecipe)`を削除しても何故かサイト上には出力され、その場合にはデータの最後には1がつきませんでした。
72
- そもそもなぜ、`print_r`を削除してもサイト上に出力されるのでしょうか・・・
72
+ そもそもなぜ、`print_r`を削除してもサイト上に出力されるのでしょうか・・・
73
+
74
+ ### クローズ前の追記
75
+ 結局返ってくる値の最後に謎の`1`が付く原因がわかりませんでした。
76
+ httpリクエストの方法をcurl以外で試したら`1`が付かなかったので、その方法で実装を進めようと思います。
77
+ アドバイス頂いた皆さま、ありがとうございました。

2

追記

2020/08/25 01:58

投稿

true_colors_20
true_colors_20

スコア25

title CHANGED
File without changes
body CHANGED
@@ -27,9 +27,10 @@
27
27
  $getRecipe = json_decode(rakutenRecipeApi(), JSON_OBJECT_AS_ARRAY);
28
28
 
29
29
  echo gettype($getRecipe); // 'integer'と返ってくる
30
+ print_r($getRecipe);
30
31
  ```
31
32
 
32
- ### 上記コードで取得したデータ
33
+ ### 上記コードのprint_r($getRecipe)で取得したデータ
33
34
  ```
34
35
  {"result":[{"recipeDescription":"これからの季節は冷しゃぶが大活躍します!ただ水で茹でるだけだと水っぽく仕上がるので、この「コツ」を覚えてさらに美味しくいただきます♪","recipeTitle":"<定番シリーズ>簡単なコツで美味しい冷しゃぶ"},{"recipeDescription":"コクがあるのに後味さっぱり、ご飯が進む一皿です♪\nスタミナupしたい時にもおススメです!豚肉に含まれるビタミンB群とニンニクパワーで、疲れも吹っ飛ぶ…かも^^","recipeTitle":"子どもにも好評♪豚肉と玉ねぎのガリマヨポン♪"},{"recipeDescription":"家にある材料で簡単にホイコーローが出来ます♪甜麺醤なしできるのでいつでも作れますヾ(*´∀`*)ノ","recipeTitle":"甜麺醤なしで出来る!簡単 ホイコーロー"},{"recipeDescription":"ビタミンB1とクエン酸で疲労回復に最強!!","recipeTitle":"豚肉と玉ねぎのポン酢炒め"}]}1
35
36
  ```
@@ -63,4 +64,9 @@
63
64
  なぜ数字の`1`が最後につくのでしょう・・・
64
65
 
65
66
  ちなみに、取得したjson形式の文字列を`gettype()`すると`integer`が返ってきました。
66
- さっきは`string`でした...
67
+ さっきは`string`でした...
68
+
69
+ さらに気づいたことが、
70
+ `print_r($getRecipe)`を実行すると、データの最後に1がつき、
71
+ `print_r($getRecipe)`を削除しても何故かサイト上には出力され、その場合にはデータの最後には1がつきませんでした。
72
+ そもそもなぜ、`print_r`を削除してもサイト上に出力されるのでしょうか・・・

1

追記

2020/08/24 06:33

投稿

true_colors_20
true_colors_20

スコア25

title CHANGED
@@ -1,1 +1,1 @@
1
- 【PHP】json形式のテキストをjson_encode()でjsonオブジェクトに変換できない
1
+ 【PHP】json形式のテキストをjson_decode()でjsonオブジェクトに変換できない
body CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [楽天レシピカテゴリ別ランキングAPI](https://webservice.rakuten.co.jp/api/recipecategoryranking/)から取得したjson形式のテキストデータをjsonオブジェクトに変換したい。
4
4
 
5
- 最終的にjson型に変換して処理を色々したいのですが、そのjson型への変換するための`json_encode()`がうまくいきません。
5
+ 最終的にjson型に変換して処理を色々したいのですが、そのjson型への変換するための`json_decode()`がうまくいきません。
6
6
 
7
7
  ### 該当のソースコード
8
8
 
@@ -24,17 +24,17 @@
24
24
  return $response;
25
25
  }
26
26
 
27
- $getRecipe = json_encode(rakutenRecipeApi());
27
+ $getRecipe = json_decode(rakutenRecipeApi(), JSON_OBJECT_AS_ARRAY);
28
28
 
29
- echo gettype($getRecipe); // 'string'と返ってくる
29
+ echo gettype($getRecipe); // 'integer'と返ってくる
30
30
  ```
31
31
 
32
32
  ### 上記コードで取得したデータ
33
33
  ```
34
- {"result":[{"recipeDescription":"これからの季節は冷しゃぶが大活躍します!ただ水で茹でるだけだと水っぽく仕上がるので、この「コツ」を覚えてさらに美味しくいただきます♪","recipeTitle":"<定番シリーズ>簡単なコツで美味しい冷しゃぶ"},{"recipeDescription":"コクがあるのに後味さっぱり、ご飯が進む一皿です♪\nスタミナupしたい時にもおススメです!豚肉に含まれるビタミンB群とニンニクパワーで、疲れも吹っ飛ぶ…かも^^","recipeTitle":"子どもにも好評♪豚肉と玉ねぎのガリマヨポン♪"},{"recipeDescription":"家にある材料で簡単にホイコーローが出来ます♪甜麺醤なしできるのでいつでも作れますヾ(*´∀`*)ノ","recipeTitle":"甜麺醤なしで出来る!簡単 ホイコーロー"},{"recipeDescription":"ビタミンB1とクエン酸で疲労回復に最強!!","recipeTitle":"豚肉と玉ねぎのポン酢炒め"}]}
34
+ {"result":[{"recipeDescription":"これからの季節は冷しゃぶが大活躍します!ただ水で茹でるだけだと水っぽく仕上がるので、この「コツ」を覚えてさらに美味しくいただきます♪","recipeTitle":"<定番シリーズ>簡単なコツで美味しい冷しゃぶ"},{"recipeDescription":"コクがあるのに後味さっぱり、ご飯が進む一皿です♪\nスタミナupしたい時にもおススメです!豚肉に含まれるビタミンB群とニンニクパワーで、疲れも吹っ飛ぶ…かも^^","recipeTitle":"子どもにも好評♪豚肉と玉ねぎのガリマヨポン♪"},{"recipeDescription":"家にある材料で簡単にホイコーローが出来ます♪甜麺醤なしできるのでいつでも作れますヾ(*´∀`*)ノ","recipeTitle":"甜麺醤なしで出来る!簡単 ホイコーロー"},{"recipeDescription":"ビタミンB1とクエン酸で疲労回復に最強!!","recipeTitle":"豚肉と玉ねぎのポン酢炒め"}]}1
35
35
  ```
36
36
  整形すると以下になります。
37
- パット見json形式のような気がするのですが、`json_encode()`を使ってもstring型になります。
37
+ パット見json形式のような気がするのですが、`json_decode()`を使ってもstring型になります。
38
38
  ```
39
39
  {
40
40
  "result": [{
@@ -51,4 +51,16 @@
51
51
  "recipeTitle": "豚肉と玉ねぎのポン酢炒め"
52
52
  }]
53
53
  }
54
+ 1
54
- ```
55
+ ```
56
+
57
+ ### ご回答を頂き追記
58
+ `encode`を`decode`にしてもダメでした。
59
+ decodeバージョンのコードを質問文に反映させました。
60
+
61
+ 今気づいたのですが、取得したjson形式の文字列の最後に数字の`1`が付いていました。
62
+ もしかしたらこれが原因で、うまく変換できないのでしょうか?
63
+ なぜ数字の`1`が最後につくのでしょう・・・
64
+
65
+ ちなみに、取得したjson形式の文字列を`gettype()`すると`integer`が返ってきました。
66
+ さっきは`string`でした...