![](/img/trans.png)
[英]Issue In JSON Result when using JsonConvert.SerializeObject C#
[英]Serialization issue using JsonConvert.SerializeObject (properties missing on server)
使用JsonConvert.SerializeObject,我的行为越来越奇怪。
我有一个方法如下所示:
public class ServiceController : ApiController
{
public object GetJSONConnectedResponse(object input)
{
return JsonConvert.SerializeObject(input, Formatting.Indented,
new JsonSerializerSettings()
{
ReferenceLoopHandling = ReferenceLoopHandling.Serialize
});
}
public object GetMediaGallery(int? id)
{
try
{
return GetJSONConnectedResponse(GalleryBLL.GetMediaGallery(id));
}
catch (Exception exc)
{
LogBLL.LogException(exc, HttpContext.Current.Request.RawUrl);
return null;
}
}
}
如您所见,我将MVC Web API用作服务应用程序,通过客户端的javascript从中查询ajax类型的数据。
方法GetMediaGallery返回具有以下结构的holder类:
public class MediaGalleryHolder
{
public List<DB_Image> Images { get; set; }
public List<string> SpinFrames { get; set; }
public string FlyoverVideo { get; set; }
}
DB_Images是一个复杂的实体,我通过调用存储过程以业务逻辑方法填充该实体。 在这个复杂的实体上,我添加了2个额外的属性。
public partial class DB_Image
{
public string FullPath { get; set; }
public string ThumbPath { get; set; }
}
出于某种原因,在我的本地计算机上,结果正确地序列化了(同时添加了2个额外的属性),但是在服务器上,那些额外的属性并未添加到结果中(我知道它们已被填充,但是从未序列化)。
这是某种JSON.NET或MVC Web API版本控制问题,如何解决或解决此问题?
任何帮助将不胜感激!
最好,
部落84
您是否在每个课程上都尝试了注释? 您可以尝试添加[可序列化]
[Serializable]
public partial class DB_Image
{
public string FullPath { get; set; }
public string ThumbPath { get; set; }
}
[Serializable]
public class MediaGalleryHolder
{
public List<DB_Image> Images { get; set; }
public List<string> SpinFrames { get; set; }
public string FlyoverVideo { get; set; }
}
希望能帮助到你!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.