当我试图序列化一个包含斜杠/
的字符串属性的对象时,生成的JSON会将每个斜杠转义两次。
示例:
一个随机的类:
public class Foo
{
[DataMember(Name = "bar"]
public string Bar { get; set; }
}
并且
Foo foo = new Foo() { Bar = " Foo / Bar" };
string json = RandomStaticClass.Serialize(foo);
JSON将会是这样的:
{
\"bar\":\"Foo \\/ Bar\"
}
这将导致:
{
"bar":"Foo \/ Bar"
}
虽然我只想要:
{
"bar":"Foo / Bar"
}
这里是我用来序列化对象的函数:
有什么想法吗?谢谢 :)
public static string Serialize(object instance)
{
using (MemoryStream stream = new MemoryStream())
{
DataContractJsonSerializer serializer = new DataContractJsonSerializer(instance.GetType());
serializer.WriteObject(stream, instance);
stream.Position = 0;
using (StreamReader reader = new StreamReader(stream))
{
return reader.ReadToEnd();
}
}
}