環境:
クライアント:macOS10.13.6, XCode10.1
サーバー:FreeBSD, PHP7.3
問題:
[NSJSONSerialization dataWithJSONObject:options:error]で文字列化したJSONデータをPHP7で受け取り、json_decode()すると失敗する。
原因:
[NSJSONSerialization dataWithJSONObject:options:error]ではシングルクォーテーションなどもバックスラッシュが加えられるが、PHP7のjson_decode()だと正しいJSONデータとして認識されない。
解決:
受け取ったJSON文字列にstripslashes();をかけ、その後json_decode()を利用する。
以下、例。
if (isset($_POST["received_json"]) {
$jsonString = $_POST["received_json"];
$jsonString = stripslashes($jsonString);
$jsonObject = json_decode($jsonString);
}
0 件のコメント:
コメントを投稿