栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用NewtonSoft.JSON序列化接口/抽象对象

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用NewtonSoft.JSON序列化接口/抽象对象

要启用具有多态对象
的根级

$type
信息输出,请使用以下重载:。从文档:
__
TypeNameHandling.Auto
JsonConvert.SerializeObject Method (Object, Type,JsonSerializerSettings)


public static string SerializeObject(    Object value,    Type type,    JsonSerializerSettings settings)

type
类型:System.Type要序列化的值的类型。如果值的类型不匹配,则当TypeNameHandling为“自动”以写出类型名称时,将使用此参数。指定类型是可选的。

就您而言,您可以这样做:

var stringA = JsonConvert.SerializeObject(a, typeof(ISample), settings);var stringB = JsonConvert.SerializeObject(b, typeof(ISample), settings);Console.WriteLine(stringA);Console.WriteLine(stringB);

并得到结果:

{"$type":"Tile.TestJsonDotNet.A, Tile","Key":"keyA"}{"$type":"Tile.TestJsonDotNet.B, Tile","Key":"keyB"}

请注意Newtonsoft文档中的这一警告:

当您的应用程序从外部源反序列化JSON时,应谨慎使用TypeNameHandling。反序列化除None以外的其他值时,应使用自定义SerializationBinder验证传入的类型。

有关为什么这样做的必要性的讨论,请参阅Newtonsoft
Json中的TypeNameHandling警告,如何配置Json.NET以创建易受攻击的Web
API,以及AlvaroMuñoz和Oleksandr
Mirosh的blackhat论文https://www.blackhat.com/docs/我们17 /周四/us-17-Munoz-Friday-
The-13th-JSON-Attacks-
wp.pdf



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/449233.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号