json_decodeで変換する必要があるサーバー上にJSON文字列があります。この文字列には何も含めることができます。問題を再現するのが難しいのですが、私はテストとして次のように試しました:PHP json_decode backslash
$data = '{"client":"Test @#€%&-+()\/\\_*\""}';
$data = json_decode($data);
var_dump($data); die;
これはNULLを返します。 \\を削除すると、コードが機能します。私はGoogle Dev Toolsでこれを試してみました.Javascriptで動作します。 json_decodeでどのように動作させることができますか?
ありがとうございます!
この文字列の\の目的は何ですか?エスケープしたり、\ charをリテラルにするには? – AbraCadaver
\\\または\\\\を使用すると、リテラルのバックスラッシュ( '\\')charを含むJSON文字列を正常にデコードします。 – lolbas
@ lolbasは既に試してあり、nullも返しました。実際、str_replace( "\\\\"、...)は実際には全く機能しませんでした。 AbraCadaver、申し訳ありませんが、文字列が既に送信者(この場合はAndroidデバイス)によってエスケープされていたことを忘れていました。だから\\はリテラル\ charです。 – Sagito