我试图让通用处理程序根据我的实体类型 SYSTEM_AUDIT_SHEET
发布 JSONJ 对象:
SYSTEM_AUDIT_SHEET sheet = ctx.SYSTEM_AUDIT_SHEET
.Where(s => s.SYSTEM_KEY == system_key_dec)
.Select(s => s)
.OrderByDescending(s => s.AUDIT_SHEET_VERSION)
.First();
HttpContext.Current.Response.Write(serializer.Serialize(sheet));
但是我得到以下错误:
A circular reference was detected while serializing an object of type 'System.Data.Entity.DynamicProxies.SYSTEM_AUDIT_SHEET_521A7B786A51FC0F83641182DD72C8DFE6C082418D30BBB977B403409A74CE17'.
为什么我不能将实体转换为 JSON?
最佳答案
您不能将对象转换为引用自身的 json,因为这会创建一个无限长的 json 字符串。
例如,以下伪代码将无法工作,因为它设置了循环引用(Dog >> Bone >> Dog...):
class Dog {
private Bone myBone;
public Dog() {
myBone = new Bone(this);
}
}
class Bone {
private Dog buriedBy;
public Bone(Dog d) {
buriedBy = d;
}
}
通过谷歌搜索“json 循环引用”似乎有一些很好的解决方案。查看前两个堆栈溢出链接。
关于c# - 将 Entity Framework 对象转换为 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7876363/