gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 23:08:55 34 4
gpt4 key购买 nike

Json.Encode()助手使用 JavaScriptSerializer将字符串编码为 json 的类?

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

我唯一的猜测是可能是 Json.Encode() helper 不使用 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);
}

其中 JavaScriptSerializerSystem.Web.Script.Serialization.JavaScriptSerializer

也可以帮助您解决问题,请参阅 this thread

关于c# - Json.Encode()是否使用JavaScriptSerializer类序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14514202/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com