C#で文字列の二重引用符をエスケープしようとしていますが、期待通りに動作しません。C#エスケープダブルクォートが期待どおりに動作しない
public JObject GetIndicatorsAsJSON()
{
String Test = "";
foreach (var ARow in db.IPMSApp_TestGridView)
{
Test += ",{ \"indicator\" : \"" + ARow.indicator + "\", \"type\": \"" + ARow.type + "\\"}";
}
Test = "[" + Test.Substring(1, Test.Length - 1) + "]"; //Strip out first comma
JObject json = JObject.Parse(Test);
return json;
}
私はこれを実行しようとすると、私は(私は一種の予想)エラーを取得しますが、コンソールウィンドウに「テスト」変数の内容を確認の上私は - :私のコードは次のようになります(私がそれらをエスケープしたので)二重引用符を見るのではなく、代わりに "\"を見ていることを確認してください。
たとえば、テスト文字列変数の出力は次のようになります -
[{"インジケータ": "アクティビティ - 最初"}]
しかし、その代わりに、それは次のようになります -
[{\ "インジケーター\":\ "活動 - 第一\"}]
私は二重引用符をエスケープしていますどのように間違って何かをやっていますか?私は逐語的な文字列リテラルを使ってみましたが、私はまだ同じ問題があります。
いいえ、それは結構です、それはエスケープ引用符で文字列だけでどのようにコンソールが出力されます。あなたのJSONエラーは何ですか? – musefan
あなたは配列である '[]'でラッピングしているようですが、代わりに 'JArray.Parse(Test);'を試しましたか? – musefan
JsonReaderからJObjectを読み取る際にエラーが発生しました。現在のJsonReaderアイテムはオブジェクトではありません:StartArray。 Path ''、1行目、1位。 –