【发布时间】:2014-03-30 23:40:21
【问题描述】:
当我知道使用集成库无法做到这一点时,我一直在尝试使用 ef 实体作为源从 wcf restful 服务返回 json 响应。因此,经过一些 3rd 方库谷歌搜索后,我开始了解 Json.net 库,它能够处理 EF 实体。到目前为止一切都很好,图书馆工作并完美地完成了它的工作。但是后来我遇到了重新序列化之前使用 Json.net 库序列化的对象的问题,因为当我返回它时,Visual Studio 集成库再次序列化,所以我不断在输出中得到一些格式错误的 json,其中包含一些反斜杠( \ )。最后我找到了一种方法来返回序列化的json字符串,避免第二次序列化,方法如下:
public Message GetProblems()
{
using (MojDBEntities context = new MojDBEntities())
{
//not a good solution, but ok, till I find a better one
context.ContextOptions.LazyLoadingEnabled = false;
var temp = context.Problems.ToList();
var serializedObject = JsonConvert.SerializeObject(temp);
return WebOperationContext.Current.CreateTextResponse (serializedObject,
"application/json; charset=utf-8",
Encoding.UTF8);
}
}
它有效。问题是我不想只返回实际的 json 数据,还有另一个名为 status 的字段,它会告诉我响应是否正确完成(例如 status = 0 表示正常,所以我可以继续获取实际的 json 数据)。 如何做到这一点?
【问题讨论】:
标签: c# json wcf entity-framework serialization