ServiceStack.Text 5.4.0版本默认char值序列化和反序列化

ServiceStack.Text version 5.4.0 default char value serialization and deserialization

这发生在 JsonSerializer 而不是 TypeSerializer。

默认的 char 序列化是“\u0000”,但将该字符串反序列化为 char 是“\”。

这是一个错误吗?或者我遗漏了什么?

有什么解决方法吗?也许一些 JsConfig.SerializeFn 和 JsConfig.DeSerializeFn?

我做了一个简单的程序来测试一下:

public class MyObj
{
    public char AChar { get; set; }
}

public static void Main(string[] args)
{
    var obj = new MyObj();
    var json = obj.ToJson();
    System.Console.WriteLine(json);

    var newObj = json.FromJson<MyObj>();

    if (newObj.AChar == obj.AChar)
        System.Console.WriteLine("Ok!");
    else
        System.Console.WriteLine(newObj.ToJson());

}

谢谢!

此问题现在应该已从 this commit 解决。

此更改适用于现在 available on MyGet 的 v5.4.1。