Questions tagged «serialization»

序列化是将数据结构转换为易于存储或传输并随后进行重构的格式的过程。

3
DataContractJsonSerializer和JavaScriptSerializer有什么区别?
.NET Framework随System.Runtime.Serialization.Json.DataContractJsonSerializer和System.Web.Script.Serialization.JavaScriptSerializer一起提供,它们都对JSON进行反序列化。我怎么知道何时选择这些类型中的一种?MSDN尚不清楚它们的相对优势是什么。 我们有几个使用或发出JSON的项目,到目前为止,为每个项目选择的类取决于每个项目的主要开发人员的意见。其中一些很简单,有两种关于从JSON生成托管类型的复杂逻辑(这些类型并不紧密地映射到流),但是不注重速度,一个需要速度。至少到目前为止,没有人与WCF进行交互。 虽然我对替代库感兴趣,但我希望有人也能对我的问题有所解答。

5
将对象转换为XML字符串
我有一个名为WebserviceTypeXsd.exe的类,它来自XSD文件。 现在,我想将WebServiceType对象的实例反序列化为字符串。我怎样才能做到这一点? 该MethodCheckType对象具有一个WebServiceType数组作为参数。 我的第一次尝试就像我对其进行了序列化:使用XmlSerializer和一样StringWriter(序列化时我使用了StringReader)。 这是序列化WebServiceType对象的方法: XmlSerializer serializer = new XmlSerializer(typeof(MethodCheckType)); MethodCheckType output = null; StringReader reader = null; // catch global exception, logg it and throw it try { reader = new StringReader(path); output = (MethodCheckType)serializer.Deserialize(reader); } catch (Exception) { throw; } finally { reader.Dispose(); } return output.WebService; 编辑: 也许我可以用不同的话来表达:我已经获得了该MethodCheckType对象的一个实例,而另一方面,我获得了从中序列化该对象的XML文档。现在,我想将此实例转换为字符串形式的XML文档。之后,我必须证明(XML文档的)两个字符串是否相同。我必须这样做,因为我对第一种方法进行了单元测试,在该方法中,我将XML文档读入aStringReader并将其序列化为一个MethodCheckType对象。
88 c#  xml  serialization 

9
使用Json.NET转换器反序列化属性
我有一个类定义,其中包含一个返回接口的属性。 public class Foo { public int Number { get; set; } public ISomething Thing { get; set; } } 尝试使用Json.NET序列化Foo类会给我一个错误消息,例如“无法创建类型为'ISomething'的实例。ISomething可能是接口或抽象类”。 是否有一个Json.NET属性或转换器可以让我指定Something反序列化期间要使用的具体类?

10
Visual Studio如何从调试器序列化对象
我正在尝试调查故障转储中的错误(因此无法更改代码)。我有一个非常复杂的对象(序列化表示中的数千行),并且其状态不一致。要调查其状态,Visual Studio调试器视图是无用的。但是对象具有数据合同。我想序列化它,然后使用我最喜欢的文本编辑器在对象上导航。是否可以通过调试器执行?


4
Python序列化-为什么要泡菜?
我了解到,Python腌制是一种以“尊重”对象编程的方式“存储” Python对象的方法-与以txt文件或DB编写的输出不同。 您是否在以下方面有更多详细信息或参考: 腌制后的物体在哪里存储? 为什么酸洗保留对象表示比存储在DB中更多? 如何从一个Python Shell会话中检索腌制的对象到另一个? 序列化有用时,您有哪些重要示例? 用pickle进行序列化是否意味着数据“压缩”? 换句话说,我正在寻找有关酸洗的文档-Python.doc解释了如何实现酸洗,但似乎没有深入探讨有关序列化的使用和必要性的细节。

9
序列化和反序列化.NET对象的最快方法
我正在寻找序列化和反序列化.NET对象的最快方法。这是我到目前为止的内容: public class TD { public List<CT> CTs { get; set; } public List<TE> TEs { get; set; } public string Code { get; set; } public string Message { get; set; } public DateTime StartDate { get; set; } public DateTime EndDate { get; set; } public static string …

15
无法序列化Web API中的响应
我正在使用ASP.NET MVC Web API,但遇到此错误: “ ObjectContent`1”类型未能序列化内容类型“ application / xml”的响应主体;charset = utf-8'。 我的控制器是: public Employee GetEmployees() { Employee employees = db.Employees.First(); return employees; } 为什么我收到此错误?

4
.NET WebAPI序列化k_BackingField Nastiness
当我序列化以下内容时: [Serializable] public class Error { public string Status { get; set; } public string Message { get; set; } public string ErrorReferenceCode { get; set; } public List<FriendlyError> Errors { get; set; } } 我得到这个令人作呕的烂摊子: <ErrorRootOfstring xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Printmee.Api"> <_x003C_Errors_x003E_k__BackingField> An exception has occurred. Please contact printmee support </_x003C_Errors_x003E_k__BackingField> <_x003C_LookupCode_x003E_k__BackingField>988232ec-6bc9-48f3-8116-7ff7c71302dd</_x003C_LookupCode_x003E_k__BackingField> …

7
XML序列化和继承的类型
在上一个问题之后,我一直在努力使我的对象模型序列化为XML。但是我现在遇到了一个问题(奇怪的是!)。 我的问题是我有一个抽象基本类类型的集合,该集合由具体的派生类型填充。 我认为只将XML属性添加到所有涉及的类中就可以了,而且一切都会变得很顺利。可悲的是,事实并非如此! 因此,我对Google进行了一些研究,现在我了解了为什么它不起作用。在该XmlSerializer实际上是在做一些聪明的反射,以对象序列化到/从XML,并且因为它的基础上,抽象类型,它不能弄清楚到底是怎么回事了它的交谈。精细。 我确实在CodeProject上遇到过此页面,它看起来可能很有帮助(但仍可以完全阅读/使用),但是我想我也想将此问题带到StackOverflow表中,以查看是否有任何整洁的地方骇客/技巧,以便以最快/最轻便的方式启动并运行它。 有一件事我还要补充的是,我不要想往下走XmlInclude的路线。耦合太简单了,系统的这个区域正在大量开发中,因此这将是真正的维护难题!

1
DataContractSerializer与XmlSerializer:每个序列化器的优缺点
我的桌面应用程序使用序列化对象XmlSerializer。建议我DataContractSerializer改用杠杆作用。 我应该在哪种情况下使用DataContractSerializer? 非常感谢 评论。 1.输出的XML文件存储在本地。没有其他应用程序反序列化该XML文件中的对象。 2.我的应用程序与.NET Framework 3.5 SP1一起运行。

9
为什么使用嵌入式数组在我的Rails多重选择中第一个元素总是空白?
我正在使用Rails 3.2.0.rc2。我有一个Model,其中有一个静态变量Array,该静态变量通过一种形式提供,以便用户可以选择的子集Array并将其选择保存到数据库中,存储在中的单个列中Model。我已经在存储的数据库列上使用了序列化,Array并且Rails正确地将用户的选择转换为Yaml(并在读取该列时返回到数组)。我正在使用多选表单输入进行选择。 我的问题是,按照我目前的方式,一切都会按我预期的那样工作,只是用户的子集数组在发送到服务器时始终具有空白的第一个元素。 这没什么大不了的,我可以写出代码以消除这种情况,但是我觉得我只是在犯某种语法错误,因为在我看来,默认的Rails行为不是故意的无需任何理由即可添加此空白元素。我一定错过了某件事,或者忘记了禁用某种设置。请帮助我了解我所缺少的内容(或为我提供一些好的文档,这些文档比在管间上可以找到的更深入地描述了此内容)。 MySQL数据库表“模型”: 包含一个名为subset_arrayTEXT字段的列 类模型包括以下设置: serialize :subset_array ALL_POSSIBLE_VALUES = [value1, value2, value3, ...] 用于编辑模型的表单包括以下输入选项: f.select :subset_array, Model::ALL_POSSIBLE_VALUES, {}, :multiple => true, :selected => @model.subset_array 从客户端PUT到服务器看起来像这样: 假设仅选择了value1和value3 "model" => { "subset_array" => ["", value1, value3] } 数据库更新如下所示: UPDATE 'models' SET 'subset_array' = '--- \n- \"\"\n- value1\n- value3\n' 如您所见,正在发送并在数据库中设置的数组中还有这个多余的空白元素。我该如何摆脱呢?我的f.select通话中是否缺少参数? 非常感谢:) …

9
接口属性的XML序列化
我想对一个具有IModelObject类型的属性(这是一个接口)的对象进行XML序列化。 public class Example { public IModelObject Model { get; set; } } 当我尝试序列化此类的对象时,出现以下错误: “无法序列化Example类型的成员Example.Model,因为它是接口。” 我知道问题是接口无法序列化。但是,直到运行时才知道具体的Model对象类型。 可以将IModelObject接口替换为抽象类型或具体类型,并通过XMLInclude使用继承,但这似乎是一个丑陋的解决方法。 有什么建议么?
83 c#  .net  serialization 

4
如何在C ++中序列化对象?
我有一个小的对象层次结构,需要通过套接字连接进行序列化和传输。我都需要序列化对象,然后根据它是什么类型对其进行反序列化。有没有一种简单的方法可以在C ++中做到这一点(就像Java中一样)? 是否有C ++序列化在线代码示例或教程? 编辑:为了清楚起见,我正在寻找将对象转换为字节数组,然后再转换为对象的方法。我可以处理套接字传输。

14
避免在未获取的惰性对象上进行Jackson序列化
我有一个返回用户对象的简单控制器,该用户的属性坐标具有休眠属性FetchType.LAZY。 当我尝试获取该用户时,我总是必须加载所有坐标才能获取用户对象,否则,当杰克逊尝试序列化User时,将抛出异常: com.fasterxml.jackson.databind.JsonMappingException:无法初始化代理-没有会话 这是由于Jackson试图获取此未获取的对象。这里是对象: public class User{ @OneToMany(fetch = FetchType.LAZY, mappedBy = "user") @JsonManagedReference("user-coordinate") private List<Coordinate> coordinates; } public class Coordinate { @ManyToOne @JoinColumn(name = "user_id", nullable = false) @JsonBackReference("user-coordinate") private User user; } 和控制器: @RequestMapping(value = "/user/{username}", method=RequestMethod.GET) public @ResponseBody User getUser(@PathVariable String username) { User user = userService.getUser(username); …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.