0

文字列 (JSON):{"title":"\"Copper\""}

私が試してみました

$output = str_replace('\\"', "", $output);

しかし、私は得ました

{"title":""      Copper""}

私が期待すること

{"title":"Copper"}
4

2 に答える 2

2

あなたが与えたものがうまくいくので、あなたのサンプルコードは不完全です:

php > $s='{"title":"\"Copper\""}';
php > echo $s;
{"title":"\"Copper\""}
php > echo str_replace('\\"',"",$s);
{"title":"Copper"}

(つまり、php -a対話型セッションから)

つまり、入力データは、あなたが思っているものではありません。

json_decodeところで、他の人が言ったように、JSON で使用する方が良いでしょう。次に、対象のフィールドだけで文字列操作を行います。次に、使用json_encodeして JSON に戻します。または 正規表現を使用str_replaceすると、単純なケースではうまくいくかもしれませんが、予期しないデータを取得するとすぐに、ひどく間違ってしまう可能性があります。

于 2012-11-25T22:58:38.910 に答える
1

(サードパーティから取得するのではなく) 独自のコードで JSON 文字列を生成していますか? その場合は、JSON 文字列を生成するコードを投稿し、問題を解決するためにこれまでに行ったことを詳しく説明してください。

JSON文字列を制御できない場合(および/またはJSON文字列の作成者が修正しない/できない場合)、修正するハックな方法は次のとおりです。

$output = str_replace( '\"' , '' , $output );
于 2012-11-25T22:52:49.420 に答える