2016-08-04 20 views
2

ここでは何をしましたか?PHPやJavascriptでJSON形式の文字列を修正するにはどうすればいいですか?

javascriptからlocalStorageを取得し、JSON.stringifyします。

document.getElementById("data").value = JSON.stringify(window.localStorage); 

は、その後、私はPHPにこのデータを送信し、json_encodeを使用してMySQLに保存します。 コメントに従ってjson_encodeを削除しました。

$data = $_POST["data"]; 
//Save to database 

私は戻って、データベースからデータを取得しようとすると、それは以下のように壊れていると私はjavascriptやPHPを使用して解析することはできません。

"{"UserData10-1":"{\"Ydosiaas\":\"NA\",\"Mpdioasp\":\"NA\"}","UserData1011-1":"{\"Mpdioasp\":\"NA\",\"Ydosiaas\":\"NA\"}","UserData1011-1":"{\"Pdsaousa\":\"NA\",\"Ydosiaas\":\"NA\"}" 

誰でも私が間違ったことを理解するのに役立つことができますか?

ありがとうございます。私が把握

EDIT

ことの一つは、私はそれをデータベースに保存する前に、最初の場所でJSONを解析しようとすると、それが働いている、です。 しかし、データベースから再度取得しようとすると、解析にエラーが発生しました。 コードは次のようになります。あなたのデータはローカルで有効なJSONオブジェクトとして格納されている場合でも、まだ:(

{"UserData882-1":""{\"Ydosiaas\":\"NA\",\"Mpdioasp\":\"Normal, position\"}"","UserData7-2":""{\"Mpdioasp\":\"NA\",\"Ydosiaas\":\"Normal, eq\"}"","UserData7-2":""{\"Tweqas\":\"NA\",\"Ydosiaas\":\"Normal, equ\"}""} 
+1

を挿入防ぐためにjson_encode($response,JSON_UNESCAPED_SLASHES);を使用することができ、それは '\'とエスケープ特殊文字を含む有効なJSON文字列です。 –

+0

しかし、解析すると、 "3番のJSONの予期しないトークンU Object.parse(native)()"というエラーが表示されます。 –

+0

エラーは引用符です。内部引用符は、攪拌を囲む引用符と異なる必要があります。例えば、 '' {"UserData10-1": "..."} ''。また、JSON twicelに変換しているようです。かつてこの問題を引き起こしている可能性のあるPHPでjavascriptを使っていました。 –

答えて

0

使用

JSON.stringify(window.localStorage.getItem( 'キー'))

+0

さて、アイテムをストリングする必要があるということですが、キーとすべてのアイテムも必要です。 –

+1

JSON.stringifyを使用してjsonエンコードを処理しました。 $ data = json_encode($ _ POST ["data"]);は必要ありません –

+0

私はそれを削除しました。しかし、私はまだ解析することはできません。 –

0

を解析することはできませんデータをJSON.stringify(data)を使用してPHPバックエンドに送信します。

jsonとしてデータを返し、応答として返す他のエンティティがある場合は、データをjson_decodeして残りのものと結合する必要がありますレスポンスのjson_encodあなたはそれが一貫して応答するようにします。

はまた、あなたはそれが破損していない複数のスラッシュ

関連する問題