ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

c# – Json.Encode()是否使用JavaScriptSerializer类进行序列化

2019-05-17 18:54:24  阅读:387  来源: 互联网

标签:json c razor javascriptserializer


Json.Encode()Helper是否使用JavaScriptSerializer类将字符串编码为json?

我在使用Json.Encode(Model)时遇到循环引用异常,即使我正在序列化的类属性具有[ScriptIgnore]属性.

我唯一的猜测是,Json.Encode()助手可能不会使用JavaScriptSerializer序列化为json,但我无法在msdn上找到任何文档.

@Html.Raw(Json.Encode(Model))

以下是其中一个具有不应序列化的属性的模型的示例…

using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Web.Script.Serialization;

namespace RobotDog.Entities {
    public class Character {
        [Key]
        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public int Id { get; set; }

        [MaxLength(200)]
        public string Name { get; set; }

        public virtual Person Person { get; set; }

        [ScriptIgnore]
        public virtual Movie Movie { get; set; }
    }
}

解决方法:

Does the Json.Encode() Helper use the JavaScriptSerializer class to encode a string to json?

是.

从源代码:

private static readonly JavaScriptSerializer _serializer = Json.CreateSerializer();

public static string Encode(object value)
{
  DynamicJsonArray dynamicJsonArray = value as DynamicJsonArray;
  if (dynamicJsonArray != null)
    return Json._serializer.Serialize((object) (object[]) dynamicJsonArray);
  else
    return Json._serializer.Serialize(value);
}

其中JavaScriptSerializer是System.Web.Script.Serialization.JavaScriptSerializer

也是为了帮助你解决问题,请参阅this thread

标签:json,c,razor,javascriptserializer
来源: https://codeday.me/bug/20190517/1123303.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有