2

jsonを使用して、iOS/Android からサーバーにデータを投稿しています。

これらの行で Post データを処理します。

//$json_alert = stripslashes(utf8_decode($_POST["json_alert"]));
$json_alert = $_POST["json_alert"]);
echo $json_alert;
$json = json_decode($json_alert);

$this->id_type = $json->{'alerte'}->{'id_type'};
        $this->note = $json->{'alerte'}->{'note'};
        $this->coordinate = $json->{'alerte'}->{'location'}->{'lat'} . ";" . $json->{'alerte'}->{'location'}->{'long'};
        $this->id_user = $json->{'alerte'}->{'expediteur'}->{'id_user'};

問題は次のとおりです。引用符でjsonを送信すると、json_decodeが常に失敗します。

ただし、print json_alert の場合、形式は正しいようです。

echo $json_alert;

**** print ****

{
  "alerte": {
  "note":"It's not \"working\"", //double quote fails in json_decode
  "expediteur":{
  "id_user":"5"
 },
  "location":{
  "lat":"37.785834",
  "long":"-122.406417"
 },
  "id_type":"3"
 }
}

二重引用符を書いてもjsonを解析する解決策は何ですか?

編集:私は削除しましたstripslashes()が、問題は生き続けます

4

2 に答える 2

0

を使用してこの問題を解決しましたBase64

メモの内容はエンコードされてBase64おり、私が行うメモを取得するために $this->note = base64_decode($json->{'alerte'}->{'note'});

構文を気にせずにメモの内容にすべてを書くことができることを知っています。これは代替ソリューションであり、実際の修正ではありません。

私はまだ興味があります。エラーが発生した場所を知りたいです。

于 2013-10-01T17:56:20.617 に答える