草庐IT

c# - 使用 json.net 反序列化时是否保留数组顺序?

当我使用json.net库将json对象反序列化为c#对象时,数组属性中元素的顺序是否会保持不变?例如:publicclassMySonsThreeFootRadius{publicBooleanIsMessy{get;set;}publicToy[]ToysThrownOnFloor{get;set;}}publicclassToy{publicStringName{get;set;}}{"IsMessy":true,"ToysThrownOnFloor":[{"Name":"Giraffe"},{"Name":"Ball"},{"Name":"Dad'sphone"}]}ToysT

c# - JSON.NET 序列化 JObject 而忽略空属性

我有一个JObject,用作调用RESTful网络服务的模板。这个JObject是通过解析器创建的,因为它被用作告诉用户端点模式是什么样子的模板,我必须想出一种方法来保留所有属性,这就是我默认的原因它们的值为null。例如,这是对象最初的样子:{"Foo":{"P1":null,"P2":null,"P3":null,"P4":{"P1":null,"P2":null,"P3":null,},"FooArray":[{"F1":null,"F2":null,"F3":null,}]},"Bar":null}然后用户可以根据需要填写各个字段,例如Foo.P2和Foo.P4.P1:{"Fo

c# - 更改属性名称以进行序列化

我的类有一个属性“Property”,我希望它在序列化时在JSON对象中显示为“Property”。有什么我可以使用的属性吗? 最佳答案 对于Json.NET和DataContractJsonSerializer使用DataMemberAttribute:[DataMember(Name="PropertyB")]TPropertyA{...}确保您的类也装饰有[DataContract]属性。如果您使用的是JavaScriptSerializer,则需要创建派生实现,如下所述:JavaScriptSerializer.Deseri

C# 从整数反序列化枚举

是否可以在C#中从int反序列化枚举。例如如果我有以下类(class):classEmployee{publicstringName{get;set;}publicintEmployeeTypeID{get;set;}}我可以很容易地从XML创建这个JoeBloggs1使用这样的东西:Employeeemployee=(Employee)newXmlSerializer(typeof(Employee)).Deserialize(XmlReader);只需很少的工作,这让我可以使用一个通用服务,通过将选择命令、连接字符串和类型输入到并检索对象数组,我可以将其用于所有数据库对象,而无需进

c# - 在序列化中将长数字转换为字符串

我有一个使用longasID的定制类。但是,当我使用ajax调用我的操作时,我的ID被截断并且它丢失了最后2个数字,因为javascript在处理大量数字时会失去精度。我的解决方案是为我的javascript提供一个字符串,但ID必须在服务器端保持尽可能长的时间。有没有办法将属性序列化为字符串?我正在寻找某种属性。ControllerpublicclassCustomersController:ApiController{publicIEnumerableGet(){yieldreturnnewCustomerEntity(){ID=1306270928525862486,Name="

c# - 在不实现任何自定义序列化/反序列化时是否需要实现 ISerializable 接口(interface)

我正在查看实现ISerializable接口(interface)的解决方案中的类。它有一个GetObjectData方法,用于根据接口(interface)的要求进行序列化。这里没有发生任何自定义序列化,它只是用类属性的名称及其值填充SerializationInfo对象。[Serializable]publicclassPersonName:ISerializable{[DataMember]publicstringNamePrefix{get;set;}[DataMember]publicstringGivenName{get;set;}[DataMember]publicstr

c# - 如何在 C# 中使用继承类实现 Xml 序列化

我有两个类:基类名称Component和继承类名称DBComponent[Serializable]publicclassComponent{privatestringname=string.Empty;privatestringdescription=string.Empty;}[Serializable]publicclassDBComponent:Component{privateListspFiles=newList();//StorageProcedureFiles[XmlArrayItem("SPFile",typeof(string))][XmlArray("SPFile

c# - XML(反)序列化无效字符串在 C# 中不一致?

在C#(.net4.0和4.5/vs2010和vs12)中,当我使用XMLSerializer序列化包含具有非法字符的字符串的对象时,不会抛出任何错误。但是,当我反序列化该结果时,会抛出“无效字符”错误。//addtoXMLItemsitems=newItems();items.Item="\vhelloworld";//contains"illegal"character\v//variablesSystem.Xml.Serialization.XmlSerializerserializer=newSystem.Xml.Serialization.XmlSerializer(type

Laravel 9.1.8 反序列化漏洞分析及复现

反序列化漏洞是如今很常见的漏洞类型,有很多分类,也有很多绕过方式。本文选取了一个今年比较典型的反序列化漏洞,进行了一个分析并复现。漏洞详情Laravel是一套简洁、优雅的PHPWeb开发框架。近日,Laravel被披露存在多个安全漏洞,可允许通过反序列化POP链实现远程代码执行,如下:CVE-2022-31279:Laravel远程代码执行漏洞Laravel9.1.8在处理反序列化数据时,允许通过IlluminateBroadcastingPendingBroadcast.php中的__destruct和FakerGenerator.php中的__call中的反序列化POP链实现远程代码执行。

c# - 有 CSV 序列化器这样的东西吗? (类似于 XmlSerializer)

我正在研究CSV文件的序列化和反序列化,我想知道是否存在一个概念类似于XmlSerializer的现有库,它可以声明性地定义对象并将它们序列化到文件或流或从文件或流中序列化(反序列化)。我环顾四周,但没有发现任何专注于序列化的东西。我已经有了非常可靠的代码来根据RFC4180解析CSV文档,但真正有用的是序列化部分。我不寻找的只是一个解析器、使用String.Split()的建议等。是否有现有项目,或者我应该构建一个?额外的礼仪问题:如果我最终推出了自己的序列化程序,用指向codeplex项目的链接来回答这个问题是否合适? 最佳答案