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。
这发生在 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。