優れたJson.Netライブラリを使用して、エンティティフレームワークによって生成されたエンティティをシリアル化しています。私はそうするために、次のコードを使用します。エンティティを直列化するときにJson.Netの予期しない文字( "")が返される
using (MyVoucherEntities context = new MyVoucherEntities())
{
List<MyObject> list = context.MyObjects.ToList();
string json = JsonConvert.SerializeObject(list);
}
すべてがうまく、私はオブジェクトが正しく1つのシンクタンク除いシリアル化され、意味行く:それは「\」文字をエスケープ追加することには、クライアント側で逆シリアル化するとき、私は悪夢を持つことができます。
[
{
\"$id\": \"1\",
\"CreationDate\": \"\\\/Date(1293186324257+0000)\\\/\",
\"ImageUrl\": \"http:\/\/www.google.com\",
\"Title\": \"Here is a title\"
} ]
誰もがなぜ、どのように私はこれらのエスケープ文字を取り除くことができます知っている「\」をスラッシュしていますか?
@Jon Skeetは正しそうですが、デシリアライズ時にどのような問題が発生していますか? – PsychoCoder
デシリアライゼーションの問題は、エスケープ文字(\)によるものではなく、シリアライズされたテキストが「[」で始まり「]」で始まるためです。 @Jone Polvoraの答えを見てください。 {"dummyRoot":とappend}を使ってシリアライズされたテキストを追加すると、そのシリアライズがうまくいくことがわかります。 – ajgreyling