3

フォーム送信(マルチパートエンコーディング)を介してaspxページにjson文字列を投稿し、逆シリアル化されたjson文字列に基づいて応答を返送しようとしています。(私は本当にフォームの送信を介してこれを行う必要があります。ajaxはありません)

なぜこれが機能しないのかわかりませんが、単純な文字列置換を試みるたびに、json文字列の単一引用符を二重引用符に置き換えます。それは起こっていないようです。

これが私がしたことの要約です。

これがJSON文字列です。

[["\n 22.02 13:15 \n ","\n \n \n \n ","\n \n \n \n ","\n \n \n "," \n Vereina\n ","\n \n ","\n 35 000\n ","\n 24.03.11\n ","\n Taiwan \n ","\n \n ","\n \n "]]

フォームデータを介して送信するには、すべての「引用符」を次のような「」引用符に置き換えます。

[['\ n 22.02 13:15 \ n'、'\ n \ n \ n \ n'、'\ n \ n \ n \ n'、'\ n \ n \ n'、'\nフェライナ\n '、' \ n \ n'、' \ n 35 000 \ n'、' \ n 24.03.11 \ n'、' \n台湾\n'、' \ n \ n'、' \ n \ n'] ]

サーバー側では、新しい行が必要ないため、新しい行を置き換えています。

[[' 22.02 13:15 ',' ',' ',' ','  Vereina ',' ',' 35 000 ',' 24.03.11 ',' Taiwan  ','  ','  ']]

次に、上記の.Replace( "'"、 "\" ")のようなC#文字列Replaceメソッドを使用すると、次のようになります。

[[\" 22.02 13:15 \",\" \",\" \",\" \",\"  Vereina \",\" \",\" 35 000 \",\" 24.03.11 \",\" Taiwan  \",\"  \",\"  \"]]

これは、コードのデバッグ中も、MSVisualStudioのクイックウォッチウィンドウで確認しています。

4

1 に答える 1

6

デバッガーは、C#文字列リテラルとして表示される文字列を表示します。そのため、引用符はエスケープされます。ただし、文字列は影響を受けません。

文字列をどこかに印刷することで、それを簡単に確認できます。

クイックデモンストレーション:

ここに画像の説明を入力してください

デバッグウィンドウ(紫)では、文字列は引用符で囲まれて表示され(クォーテーションマークで囲まれているため、C#文字列リテラルになります)、コンソールの出力(赤)には実際の内容が表示されます。

于 2012-06-14T07:19:28.833 に答える