首页 新闻 会员 周边 捐助

MVC JsonResult 返回json问题

0
悬赏园豆:5 [已解决问题] 解决于 2013-10-31 15:10

return Json(json, JsonRequestBehavior.AllowGet);
为什么返回的是{"Uid":3,"AGid":0,"Rid":0,"UserName":"xxx","PassWord":"e10adc3949ba59abbe56e057f20f883e","TrueName":"name","Sex":1,"Tel":"13428673730","Sort":1,"ULid":1,"Status":1,"AddTime":"\/Date(1378173600000)\/","Pic":null,"Remark":null,"EntityState":2,"EntityKey":{"EntitySetName":"Admin","EntityContainerName":"WCFTestEntities","EntityKeyValues":[{"Key":"Uid","Value":3}],"IsTemporary":false}}
这些,"EntityState":2,"EntityKey":{"EntitySetName":"Admin","EntityContainerName":"WCFTestEntities","EntityKeyValues":[{"Key":"Uid","Value":3}],"IsTemporary":false是怎么来的,怎么过滤掉这些呢,烦请各位帮忙看看,谢谢。

晴.天的主页 晴.天 | 初学一级 | 园豆:170
提问于:2013-09-10 17:08
< >
分享
最佳答案
1

因为你的json对象就是这些属性!所以就会解析出这些。你可以断点看json对象的属性。

收获园豆:2
幻天芒 | 高人七级 |园豆:37207 | 2013-09-11 00:06

返回的没有这些的啊

晴.天 | 园豆:170 (初学一级) | 2013-09-11 10:00

@晴.天: 应该是你的这个对象继承了另外一个对象,然后那些属性是父对象的属性。看你用的应该是EF,哈哈~

幻天芒 | 园豆:37207 (高人七级) | 2013-09-11 10:19

@幻天芒: 是的我用的是EF,但是没有继承另外一个对象呢。

晴.天 | 园豆:170 (初学一级) | 2013-09-11 11:57

@晴.天: 多出来的属性是EF相关的属性,把实体代码贴出来下。

幻天芒 | 园豆:37207 (高人七级) | 2013-09-11 13:02

@幻天芒: 

 public ActionResult ReturnJson()
{

      Admin json = Entity.Admin.FirstOrDefault(f => f.Uid == 3);

      return Json(json, JsonRequestBehavior.AllowGet);

}

晴.天 | 园豆:170 (初学一级) | 2013-09-11 13:07

@晴.天: 看实体类,看设计看不出什么;从你截的图,看来是继承没错了。

幻天芒 | 园豆:37207 (高人七级) | 2013-09-11 13:19

@幻天芒: 实体类是自动生成的

public partial class Admin : EntityObject { #region 工厂方法 /// /// 创建新的 Admin 对象。 /// ///Uid 属性的初始值。 ///UserName 属性的初始值。 ///PassWord 属性的初始值。 ///Sex 属性的初始值。 ///Tel 属性的初始值。 ///Status 属性的初始值。 public static Admin CreateAdmin(global::System.Int32 uid, global::System.String userName, global::System.String passWord, global::System.Byte sex, global::System.String tel, global::System.Int32 status) { Admin admin = new Admin(); admin.Uid = uid; admin.UserName = userName; admin.PassWord = passWord; admin.Sex = sex; admin.Tel = tel; admin.Status = status; return admin; } #endregion #region 基元属性 /// /// 没有元数据文档可用。 /// [EdmScalarPropertyAttribute(EntityKeyProperty=true, IsNullable=false)] [DataMemberAttribute()] public global::System.Int32 Uid { get { return _Uid; } set { if (_Uid != value) { OnUidChanging(value); ReportPropertyChanging("Uid"); _Uid = StructuralObject.SetValidValue(value); ReportPropertyChanged("Uid"); OnUidChanged(); } } } private global::System.Int32 _Uid; partial void OnUidChanging(global::System.Int32 value); partial void OnUidChanged(); /// /// 没有元数据文档可用。 /// [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] [DataMemberAttribute()] public Nullable AGid { get { return _AGid; } set { OnAGidChanging(value); ReportPropertyChanging("AGid"); _AGid = StructuralObject.SetValidValue(value); ReportPropertyChanged("AGid"); OnAGidChanged(); } } private Nullable _AGid; partial void OnAGidChanging(Nullable value); partial void OnAGidChanged(); /// /// 没有元数据文档可用。 /// [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] [DataMemberAttribute()] public Nullable Rid { get { return _Rid; } set { OnRidChanging(value); ReportPropertyChanging("Rid"); _Rid = StructuralObject.SetValidValue(value); ReportPropertyChanged("Rid"); OnRidChanged(); } } private Nullable _Rid; partial void OnRidChanging(Nullable value); partial void OnRidChanged(); /// /// 没有元数据文档可用。 /// [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)] [DataMemberAttribute()] public global::System.String UserName { get { return _UserName; } set { OnUserNameChanging(value); ReportPropertyChanging("UserName"); _UserName = StructuralObject.SetValidValue(value, false); ReportPropertyChanged("UserName"); OnUserNameChanged(); } } private global::System.String _UserName; partial void OnUserNameChanging(global::System.String value); partial void OnUserNameChanged(); /// /// 没有元数据文档可用。 /// [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)] [DataMemberAttribute()] public global::System.String PassWord { get { return _PassWord; } set { OnPassWordChanging(value); ReportPropertyChanging("PassWord"); _PassWord = StructuralObject.SetValidValue(value, false); ReportPropertyChanged("PassWord"); OnPassWordChanged(); } } private global::System.String _PassWord; partial void OnPassWordChanging(global::System.String value); partial void OnPassWordChanged(); /// /// 没有元数据文档可用。 /// [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] [DataMemberAttribute()] public global::System.String TrueName { get { return _TrueName; } set { OnTrueNameChanging(value); ReportPropertyChanging("TrueName"); _TrueName = StructuralObject.SetValidValue(value, true); ReportPropertyChanged("TrueName"); OnTrueNameChanged(); } } private global::System.String _TrueName; partial void OnTrueNameChanging(global::System.String value); partial void OnTrueNameChanged(); /// /// 没有元数据文档可用。 /// [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)] [DataMemberAttribute()] public global::System.Byte Sex { get { return _Sex; } set { OnSexChanging(value); ReportPropertyChanging("Sex"); _Sex = StructuralObject.SetValidValue(value); ReportPropertyChanged("Sex"); OnSexChanged(); } } private global::System.Byte _Sex; partial void OnSexChanging(global::System.Byte value); partial void OnSexChanged(); /// /// 没有元数据文档可用。 /// [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)] [DataMemberAttribute()] public global::System.String Tel { get { return _Tel; } set { OnTelChanging(value); ReportPropertyChanging("Tel"); _Tel = StructuralObject.SetValidValue(value, false); ReportPropertyChanged("Tel"); OnTelChanged(); } } private global::System.String _Tel; partial void OnTelChanging(global::System.String value); partial void OnTelChanged(); /// /// 没有元数据文档可用。 /// [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] [DataMemberAttribute()] public Nullable Sort { get { return _Sort; } set { OnSortChanging(value); ReportPropertyChanging("Sort"); _Sort = StructuralObject.SetValidValue(value); ReportPropertyChanged("Sort"); OnSortChanged(); } } private Nullable _Sort; partial void OnSortChanging(Nullable value); partial void OnSortChanged(); /// /// 没有元数据文档可用。 /// [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] [DataMemberAttribute()] public Nullable ULid { get { return _ULid; } set { OnULidChanging(value); ReportPropertyChanging("ULid"); _ULid = StructuralObject.SetValidValue(value); ReportPropertyChanged("ULid"); OnULidChanged(); } } private Nullable _ULid; partial void OnULidChanging(Nullable value); partial void OnULidChanged(); /// /// 没有元数据文档可用。 /// [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)] [DataMemberAttribute()] public global::System.Int32 Status { get { return _Status; } set { OnStatusChanging(value); ReportPropertyChanging("Status"); _Status = StructuralObject.SetValidValue(value); ReportPropertyChanged("Status"); OnStatusChanged(); } } private global::System.Int32 _Status; partial void OnStatusChanging(global::System.Int32 value); partial void OnStatusChanged(); /// /// 没有元数据文档可用。 /// [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] [DataMemberAttribute()] public Nullable AddTime { get { return _AddTime; } set { OnAddTimeChanging(value); ReportPropertyChanging("AddTime"); _AddTime = StructuralObject.SetValidValue(value); ReportPropertyChanged("AddTime"); OnAddTimeChanged(); } } private Nullable _AddTime; partial void OnAddTimeChanging(Nullable value); partial void OnAddTimeChanged(); /// /// 没有元数据文档可用。 /// [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] [DataMemberAttribute()] public global::System.String Pic { get { return _Pic; } set { OnPicChanging(value); ReportPropertyChanging("Pic"); _Pic = StructuralObject.SetValidValue(value, true); ReportPropertyChanged("Pic"); OnPicChanged(); } } private global::System.String _Pic; partial void OnPicChanging(global::System.String value); partial void OnPicChanged(); /// /// 没有元数据文档可用。 /// [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] [DataMemberAttribute()] public global::System.String Remark { get { return _Remark; } set { OnRemarkChanging(value); ReportPropertyChanging("Remark"); _Remark = StructuralObject.SetValidValue(value, true); ReportPropertyChanged("Remark"); OnRemarkChanged(); } } private global::System.String _Remark; partial void OnRemarkChanging(global::System.String value); partial void OnRemarkChanged(); #endregion }

晴.天 | 园豆:170 (初学一级) | 2013-09-11 13:48

@晴.天: 你看第一句,是继承了吧,哈哈~

幻天芒 | 园豆:37207 (高人七级) | 2013-09-11 14:02

@幻天芒: 哦,那我应该怎么过滤掉继承的呢。

晴.天 | 园豆:170 (初学一级) | 2013-09-11 14:04

@晴.天: 自己写个类,然后进行属性复制。

幻天芒 | 园豆:37207 (高人七级) | 2013-09-11 14:05

@幻天芒: 不是很明白,重新写个实体类?

晴.天 | 园豆:170 (初学一级) | 2013-09-11 14:12

@晴.天: Yes!

幻天芒 | 园豆:37207 (高人七级) | 2013-09-11 15:59
其他回答(2)
0

"EntityState":2,"IsTemporary":false应该是你查询数据的时候就有了这些数据

而"EntityKey":{"EntitySetName":"Admin","EntityContainerName":"WCFTestEntities","EntityKeyValues":[{"Key":"Uid","Value":3}],这个应该是你返回json对象下的一个子集合吧。。

要过滤掉这些在获取数据的时候取消就可以了、因为本人也是新手、说错勿喷、不过这个可能还是很大的

收获园豆:2
落雁知秋 | 园豆:186 (初学一级) | 2013-09-10 18:04
0

简单点 使用一个anonymous type 做返回.

 

var records = from entity in context.Entities
              select new 
              {
                  Prop1 = entity.Prop1,
                  Prop2 = entity.Prop2,
                  ChildProp = entity.Child.Prop
              }
return Json(records);
收获园豆:1
gunsmoke | 园豆:3592 (老鸟四级) | 2013-09-20 10:20
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册