有没有办法解决这个问题?
我建议您使用仅公开您需要的属性并将视图模型传递给 Json 方法的视图模型。
如果您不想遵循我推荐的视图模型方法,那么该[ScriptIgnore]
属性也应该适合您。
例子:
using System;
using System.Collections.Generic;
using System.Web.Script.Serialization;
public class User
{
public IEnumerable<Badge> Badges { get; set; }
}
public class Badge
{
[ScriptIgnore]
public User User { get; set; }
}
public class Program
{
static void Main()
{
var user = new User();
var badge = new Badge { User = user };
user.Badges = new[] { badge };
var serializer = new JavaScriptSerializer();
Console.WriteLine(serializer.Serialize(user));
}
}
如果从类的属性中删除该属性[ScriptIgnore]
,则JSON 序列化将由于循环引用错误而失败。User
Badge