値にバックスラッシュを含むサードパーティシステムのJSONがあります。C#形式値のバックスラッシュ ''付きのJSON
文字列に対応するエスケープC#の文字列無しstring extract = @"{""key"": ""\/Date(2015-02-02)\/""}";
:例えば
{"key": "\/Date(2015-02-02)\/"}
I(例えばインデント)このJSONをフォーマットできるようにしたいです。
一般的にフォーマットするために、私はそうのようなJsonConvertのようなものを使用することがあります:
JsonConvert.SerializeObject(JsonConvert.DeserializeObject(extract), Formatting.Indented)
これはかなりのない作業を行い、それが日付として値を見ていると、それは標準のMS形式ではありませんように\/Date(ticks)\/
、それは1970年1月1日の日付に行く:
{
"key": "1970-01-01T00:00:02.015+00:00"
}
次のアプローチは、それはおそらくだろうが(私は、それが日付としてフィールドを認識するかどうか気にいないよ日付を変換しないようにシリアライザの設定を使用することです後で便利です):
JsonSerializerSettings settings = new JsonSerializerSettings
{
DateParseHandling = DateParseHandling.None,
};
JsonConvert.SerializeObject(JsonConvert.DeserializeObject(extract, settings), Formatting.Indented);
これは、逆シリアル化中にエスケープ文字としてバックスラッシュを扱われているように見えるので、それは私が最終的な結果を見たら、「失われた」されています
{
"key": "/Date(2015-02-02)/"
}
私はフォーマットすることができる方法がありますC#のJSON(JsonConvertの有無にかかわらず)は、値にバックスラッシュを保持しますか?
私が扱っている実際のJSONは(a)合理的に大きいですが、本当に必要な場合には正規表現/検索置換ソリューションには大きすぎず、(b)私の制御下にないので、変更できませんフォーマット。私は答えはStackOverflowの上ですでに確信しているが、私はそれが困難な右の検索用語を見つけるために探しています...
文字列 – derloopkat