为什么下面的代码返回 “[]” 时,它应该返回 “{” ID “:1999年, ”称号“:” hithere“}为什么C#JavaScriptSerializer.Serialize返回空方括号
JavaScriptSerializer serializer = new JavaScriptSerializer();
StringBuilder sbJsonResults = new StringBuilder();
var result = serializer.Serialize(new dg(1999, "hithere"));
context.Response.Clear();
context.Response.ContentType = "application/json; charset=utf-8";
context.Response.Cache.SetExpires(DateTime.MinValue);
context.Response.Write(result);
PS的DG类看起来是这样的:。
public class dg : ScheduleObserver, ILibrary, IEnumerable {
public int id;
public string title;
private List<d> dList;
...many getters and setters and some logic functions...
}
public abstract class ScheduleObserver{
public abstract void update();
}
public interface ILibrary {
List<PD> getPDs();
void setPDs(List<PD> newPDs);
int getCurrentIndex();
void addPD(PD pD);
PD getPD(int index);
}
非常感谢
谢谢 - 成功回答了 - 这是IEnumerable的,这是我的困境的源头上解决它,DG不再扩展IEnumerable和所有foreach(dg ...)循环已被转换回for(int i = 0 ...)循环。
非常感谢,非常感谢!詹姆斯得到了为什么它是空的,帕夫得到了为什么有方括号。将两者都标记为答案,但只能标记一个。
'dg' ='[serializable]'? –
是否有一个构造函数与您的示例中的重载匹配,并确保该重载能够正确地将值分配给相应的属性? – Dimitri
@Brad - 我得到了相同的结果,带有或不带[Serializable]标签dg – user2282496