当前位置: 首页 > 面试题库 >

.NET BCL中是否有任何现成的Json序列化帮助程序类?

夏侯楷
2023-03-14
问题内容

我需要将一些对象序列化/反序列化到字符串中/从字符串中反序列化,并将它们作为不透明数据传输。我可以使用XmlSerializer来执行此操作,但是生成的字符串看起来笨拙且冗长。那么,.NET中是否有任何简洁的序列化器可用?

我想到的第一件事是.NET可能应该具有JSON序列化程序,但我找不到它。.NET中是否有任何现成的方法可以将对象转换为简洁的字符串?


问题答案:

那里有两个;

  • 3.5中的DataContractJsonSerializer
  • 3.5 SP1中的JavaScriptSerializer

按照传统方式,它们彼此之间并非100%兼容,尤其是re DateTime;DCJS使用(IIRC)文字字符串;JSS使用new-都无法正确读取其他。

当然,如果文本不透明,您也可以使用任何简洁的二进制序列化程序,只需对其进行base-64编码即可;例如,protobuf-
net
非常简洁。但是,使用JSON可以最大限度地减少两端需要的外部代码,因此,最好的选择是。



 类似资料:
  • 问题内容: .NET 4是否附带任何可对JSON数据进行序列化/反序列化的类? 我知道有第三方库,例如JSON.NET,但是我正在寻找内置在.NET中的东西。 我在MSDN上找到了数据合同,但是它是用于WCF的,而不是Winforms或WPF的。 问题答案: 您可以在任何需要的地方使用DataContractJsonSerializer类,它只是一个.net类,不仅限于WCF。有关如何在此处和此处

  • 如果类B扩展了类A,则类B实现可序列化,而类A有一个不可序列化的公共非静态初始化变量。。。尝试使用FileOutputStream的writeObject()方法写入类“B”对象时,将序列化从a继承的不可序列化成员,以便将其与类B的其余变量一起写入文件,还是将引发NotSerializableException?我试过了,效果不错,但我不知道为什么。。。所以我不确定它是否总是有效,或者我错过了什么

  • 问题内容: 当尝试使用Jackson序列化一个非常简单的对象时,出现异常。错误: org.codehaus.jackson.map.JsonMappingException:未找到类MyPackage.TestA的序列化程序,也未发现创建BeanSerializer的属性(为避免异常,请禁用SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS)) 以下是要

  • 我有以下ORM对象(简化): 每行有: 主键 插入行时的时间戳 computed_values要存储的实际JSONB数据 JSONB来存储计算数据的日期列表。 虽然我对列没有问题,但是对象不能被SQLAlchemy JSON序列化程序序列化。 我的想法是为该列重新定义对象的序列化程序行为。要做到这一点,我必须定义自己的自定义JSON序列化程序,或者使用一些现成的序列化程序,比如orjson。因为我

  • 问题内容: 是否有要使用Java序列化的python反序列化的库? 问题答案: Java序列化是类/数据结构的表示,并与虚拟机紧密相关。因此,要转换到Python世界将很困难。 您的Java程序可以将XML序列化/反序列化,这是可以翻译的。检出JAXB或XStream 您是否看过在Jython中运行的可能性-Java中的Python实现

  • 问题内容: 我偶然了解了Java序列化。我读过许多文档和书籍,其中静态变量和瞬态变量无法在Java中序列化。我们声明一个serialVersionUid如下。 如果静态变量未序列化,那么在反序列化过程中我们经常会遇到异常。 其中从反序列化对象中提取serialVersionUID并将其与已加载类的serialVersionUID进行比较。 据我所知,我认为如果静态变量不能序列化。毫无例外。我可能仍