3

ServiceStack の JsonSerializer は、制御文字を正しくエンコードしていないようです。

たとえば、この C# 式....

JsonSerializer.SerializeToString(new { Text = "\u0010" })

...これに評価...

{"Text":"?"}

... どこ "?" リテラル制御文字です。

代わりに、http: //www.json.org によると、次のように評価する必要があります。

{"Text":"\u0010"}

これは既知のバグですか、それとも何か不足していますか?

サービスによる不適切な JSON 出力により、サービス コンシューマーによる逆シリアル化中にエラーが発生しています。

4

2 に答える 2

1

ユニコード文字をエスケープするようにシリアライザーに指示する必要があります。

JsConfig.EscapeUnicode = true;
JsonSerializer.SerializeToString(new{Text = "\u0010"});

上記は次のように評価されます。

{"Text":"\u0010"}
于 2013-08-27T16:38:07.277 に答える