Questions tagged «serialization»

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

24
jQuery序列化不注册复选框
我正在使用jQuery.serialize检索表单中的所有数据字段。 我的问题是它不会检索未选中的复选框。 它包括: <input type="checkbox" id="event_allDay" name="event_allDay" class="checkbox" checked="checked" /> 但不是这个 <input type="checkbox" id="event_allDay" name="event_allDay" class="checkbox" /> 如何获得未选中的复选框的“值”?

13
如何将对象序列化为查询字符串格式?
如何将对象序列化为查询字符串格式?我似乎在Google上找不到答案。谢谢。 这是我将序列化的对象作为示例。 public class EditListItemActionModel { public int? Id { get; set; } public int State { get; set; } public string Prefix { get; set; } public string Index { get; set; } public int? ParentID { get; set; } }

5
将请求上下文从Django Rest Framework中的Viewset传递给序列化器
我有一种情况,其中序列化器字段的值取决于当前登录用户的身份。我已经看到了在初始化序列化程序时如何将用户添加到上下文中,但是我不确定在使用ViewSet时如何执行此操作,因为您仅提供序列化程序类而不提供实际的序列化程序实例。 基本上我想知道如何去: class myModelViewSet(ModelViewSet): queryset = myModel.objects.all() permission_classes = [DjangoModelPermissions] serializer_class = myModelSerializer 至: class myModelSerializer(serializers.ModelSerializer): uploaded_by = serializers.SerializerMethodField() special_field = serializers.SerializerMethodField() class Meta: model = myModel def get_special_field(self, obj): if self.context['request'].user.has_perm('something.add_something'): return something 很抱歉,如果不清楚,请参阅DOC: 添加额外的上下文 说明 serializer = AccountSerializer(account, context={'request': request}) serializer.data 但是我不确定如何从视图集中自动执行此操作,因为我只能更改序列化程序类,而不能更改序列化程序实例本身。


8
JavaScriptSerializer.Deserialize-如何更改字段名称
摘要:使用JavaScriptSerializer.Deserialize时,如何将JSON数据中的字段名称映射到.Net对象的字段名称? 较长的版本:我从服务器API获得以下JSON数据(未在.Net中编码) {"user_id":1234, "detail_level":"low"} 我有以下C#对象: [Serializable] public class DataObject { [XmlElement("user_id")] public int UserId { get; set; } [XmlElement("detail_level")] public DetailLevel DetailLevel { get; set; } } 其中DetailLevel是使用“低”作为值之一的枚举。 该测试失败: [TestMethod] public void DataObjectSimpleParseTest() { JavaScriptSerializer serializer = new JavaScriptSerializer(); DataObject dataObject = serializer.Deserialize<DataObject>(JsonData); Assert.IsNotNull(dataObject); Assert.AreEqual(DetailLevel.Low, dataObject.DetailLevel); Assert.AreEqual(1234, dataObject.UserId); } 最后两个断言失败,因为这些字段中没有数据。如果我将JSON数据更改为 …

5
使用XmlSerializer将空的xml属性值反序列化为可为null的int属性
我从第三方获得了xml,我需要将其反序列化为C#对象。此xml可能包含具有整数类型值或空值的属性:attr =” 11”或attr =””。我想将此属性值反序列化为具有可空整数类型的属性。但是XmlSerializer不支持反序列化为可空类型。在使用InvalidOperationException {“发生错误,反映类型'TestConsoleApplication.SerializeMe'。”}的XmlSerializer创建期间,以下测试代码失败。 [XmlRoot("root")] public class SerializeMe { [XmlElement("element")] public Element Element { get; set; } } public class Element { [XmlAttribute("attr")] public int? Value { get; set; } } class Program { static void Main(string[] args) { string xml = "<root><element attr=''>valE</element></root>"; var deserializer = new XmlSerializer(typeof(SerializeMe)); …

4
序列化私人成员数据
我正在尝试将对象序列化为具有许多属性的XML,其中一些属性为只读。 public Guid Id { get; private set; } 我已经标记了[Serializable]类,并且实现了ISerializable接口。 下面是我用来序列化对象的代码。 public void SaveMyObject(MyObject obj) { XmlSerializer serializer = new XmlSerializer(typeof(MyObject)); TextWriter tw = new StreamWriter(_location); serializer.Serialize(tw, obj); tw.Close(); } 不幸的是,它落在此消息的第一行。 未处理InvalidOperationException:无法生成临时类(结果= 1)。错误CS0200:无法将属性或索引器'MyObject.Id'分配给它-只读 如果我将Id属性设置为public,则效果很好。有人可以告诉我我是否正在做某事,或者至少可以做某件事?

10
如何在C#中序列化Exception对象?
我正在尝试在C#中序列化Exception对象。但是,由于Exception类未标记为,因此似乎是不可能的[Serializable]。有办法解决这个问题吗? 如果在应用程序执行过程中出了点问题,我想知道发生的异常。 我的第一反应是将其序列化。

8
NewtonSoft.Json具有IEnumerable <ISomeInterface>类型的属性的序列化和反序列化类
我正在尝试移动一些代码以使用ASP.NET MVC Web API生成的Json数据而不是SOAP Xml。 我遇到了序列化和反序列化类型属性的问题: IEnumerable&lt;ISomeInterface&gt;. 这是一个简单的示例: public interface ISample{ int SampleId { get; set; } } public class Sample : ISample{ public int SampleId { get; set; } } public class SampleGroup{ public int GroupId { get; set; } public IEnumerable&lt;ISample&gt; Samples { get; set; } } } …

3
protobuf文本格式是什么样的?
Google协议缓冲区不仅可以以二进制格式序列化,还可以以text序列化。但是,我很难找到此类文本的示例。它会是什么样子? 预期答案:一个示例,涵盖protobuf IDL / proto文件允许的所有功能,包括文本格式的protobuf样本包。

2
django-rest-framework 3.0在嵌套序列化程序中创建或更新
使用django-rest-framework 3.0并具有以下简单模型: class Book(models.Model): title = models.CharField(max_length=50) class Page(models.Model): book = models.ForeignKey(Books, related_name='related_book') text = models.CharField(max_length=500) 并给出此JSON请求: { "book_id":1, "pages":[ { "page_id":2, "text":"loremipsum" }, { "page_id":4, "text":"loremipsum" } ] } 如何编写嵌套的序列化程序来处理此JSON,并为page给定的每个JSONbook创建一个新页面或更新(如果存在)。 class RequestSerializer(serializers.Serializer): book_id = serializers.IntegerField() page = PageSerializer(many=True) class PageSerializer(serializers.ModelSerializer): class Meta: model = Page 我知道用实例化序列化程序instance会更新当前序列化程序,但是我应该如何在create嵌套序列化程序的方法中使用它呢?


1
Gson麻烦将POJO的ArrayList序列化
我一直在计划使用simpleXML来满足序列化需求,但是我想尝试使用JSON来学习一些新知识。 这是我用来尝试使用Gson 1.7.1序列化测试POJO的ArrayList的代码。 注意:为了简化代码,我删除了字符串“ s”的读取器/写入器。 package test; import java.io.IOException; import java.util.ArrayList; import java.util.Collections; import java.util.List; import com.google.gson.Gson; public class TestGsonSerialDeserialList { public static void main(String[] args) throws IOException{ Gson gson = new Gson(); //Make Serial String s; List&lt;TestObject&gt; list = Collections.synchronizedList(new ArrayList&lt;TestObject&gt;() ); list.add(new TestObject()); list.add(new TestObject()); s = gson.toJson(list, …

2
忽略Json.net中的空字段
我有一些必须序列化为JSON的数据。我正在使用JSON.NET。我的代码结构与此类似: public struct structA { public string Field1; public structB Field2; public structB Field3; } public struct structB { public string Subfield1; public string Subfield2; } 问题是,我的JSON输出需要具有ON Field1ORField2或ON-Field3取决于所使用的字段(即不为null)。默认情况下,我的JSON如下所示: { "Field1": null, "Field2": {"Subfield1": "test1", "Subfield2": "test2"}, "Field3": {"Subfield1": null, "Subfield2": null}, } 我知道我可以使用NullValueHandling.Ignore,但这给了我如下所示的JSON: { "Field2": {"Subfield1": "test1", "Subfield2": "test2"}, "Field3": …

5
将字典的C#JSON序列化为{key:value,…}而不是{key:key,value:value,…}
是否可以使用以下格式的DataContractJsonSerializer将.Net Dictionary &lt;Key,Value&gt;序列化为JSON : { key0:value0, key1:value1, ... } 我使用字典&lt;K,V&gt;,因为没有预定义的输入结构。 我对DataContractJsonSerializer的结果很感兴趣!我已经找到一个“代理”示例,但是输出中还有一个附加的“数据”,如果字典&lt;K,String&gt;是,转义也是假的。 我已经找到了解决方案,需要什么!首先,一个可序列化的“字典”类:(当然,该示例仅以一种方式工作,但是我不需要反序列化) [Serializable] public class MyJsonDictionary&lt;K, V&gt; : ISerializable { Dictionary&lt;K, V&gt; dict = new Dictionary&lt;K, V&gt;(); public MyJsonDictionary() { } protected MyJsonDictionary( SerializationInfo info, StreamingContext context ) { throw new NotImplementedException(); } public void GetObjectData( SerializationInfo info, StreamingContext context …

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.