【发布时间】:2016-10-19 11:47:22
【问题描述】:
我在使用有关 WCF 中的转义字符的 JsonConvert.SerializeObject 方法时遇到了一些问题。我的 web 方法返回一个 Stream,如下所示:
return new MemoryStream(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(myObject)));
除了 myObject 的一个属性是<string, object> 的字典之外,这很好用。所有简单类型都正确序列化,但是当我尝试将自定义类添加为值时,我得到的是返回的类型而不是数据。意识到这来自于在我的自定义类上调用 .ToString 的序列化程序,我尝试用以下方法覆盖它:
public override string ToString()
{
return JsonConvert.SerializeObject(this);
}
但是返回的数据现在包含转义字符
{
"my_dictionary": {
"elem_1": "{\"Prop1\":null,\"Prop2\":3}",
"elem_2": "{\"Prop1\":null,\"Prop2\":3}",
"int_property" : 123
}
}
关于如何避免我的自定义类以这种方式转义并作为数组返回的任何想法?
提前致谢,马特
【问题讨论】:
标签: c# json wcf dictionary json.net