SerializeXmlNode
来自Newtonsoft.Json.JsonConvert
class
的函数在序列化过程中始终将XML的最后一个子节点的值作为字符串类型输出,有时您可能需要将它们序列化为Integer或Boolean。
样例代码:
<Object>
<ID>12</ID>
<Title>mytitle</Title>
<Visible>false</Visible>
</Object>
输出:
{ "ID" : "12",
"Title" : "mytitle",
"Visible" : "false"
}
所需的输出:
{ "ID" : 12,
"Title" : "mytitle",
"Visible" : false
}
有没有一种方法可以强制将XML节点序列化为Integer或Boolean?
谢谢。
注意:当XML已被序列化为JSON字符串时,请避免发布解决方法,因为这些解决方法是我们愿意避免的。
当前的JSON.NET构建不提供请求的功能,因此我修改了源代码以提供此功能:
https://github.com/lukegothic/Newtonsoft.Json/blob/master/Src/Newtonsoft.Json/Converters/XmlNodeConverter.cs
此修改为XmlNodeConverter提供了一种从XML节点(称为“
Type”)读取可选属性的方法,该属性保存所需的节点值序列化。默认情况下,转换器将所有值序列化为结果JSON字符串中的字符串,但是现在您可以添加一个属性,该属性指定所需的DataType输出。允许的类型为Integer,Float,Boolean和Date。
例如,如果您具有以下源XML:
<Object>
<ID json:Type='Integer'>12</ID>
<Title>mytitle</Title>
<Visible json:Type='Boolean'>false</Visible>
<Price json:Type='Float'>1.55</Price>
<ExpirationDate json:Type='Date'>2013-12-31</ExpirationDate>
</Object>
它将被序列化为:
{
"ID":12,
"Title":"mytitle",
"Visible":false,
"Price":1.55,
"ExpirationDate":"2013-12-31T00:00:00"
}
问题内容: 我有一个类,它是一个内部列表周围的装饰器。我想在我的JAX-RS服务中将此类用作DTO。其代码如下: 我需要同时支持application / xml和application / json。格式是固定的,必须像 …以XML格式,以及 …在JSON中。XML可以很好地工作,但是JSON看起来像这样: 您可能会怀疑,如果我不实现List接口,它将生成我需要的格式。因此,我认为序列化器很聪明
我有一个班级,它是一个装饰围绕一个内部列表。我想在我的JAX-RS服务中使用这个类作为DTO。其代码如下: 我需要同时支持application/xml和application/json。格式是固定的,它必须像 ...XML格式,并且 ...在JSON中。XML工作得非常好,但JSON看起来是这样的: 正如您可能怀疑的那样,如果我不实现列表接口,它会生成我需要的格式。所以我想序列化器是聪明的,将其
问题内容: 使用Jackson 2,我正在寻找一种 通用的 方式将对象序列化为单个值(然后序列化它们,然后再填充该单个字段),而不必重复创建JsonSerializer / JsonDeserializer来处理每种情况。@JsonIdentityInfo批注非常接近,但由于我知道,它将始终对完整的子对象进行序列化,因此略微遗漏了该标记。 这是我想做的一个例子。给定的类: 我希望Order可以序列
我正在试验Stanford CoreNLP库,我想序列化主要的StanfordCoreNLP管道对象,尽管它抛出了一个java.io.NotSerializableException。 完整故事:每当我运行我的实现时,将管道注释器和分类器加载到内存中大约需要15秒。最终进程的内存约为600MB(很容易小到可以存储在我的机箱中)。我想在第一次创建管道后保存它,这样我就可以在以后将其读入内存。 然而,
我试图创建一个函数,如果x和y是整数,则返回x和y之间的随机整数,但如果x或y是双精度的,则该函数返回x和y之间的双精度。但当我尝试使用整数时,它引发了一个异常:“类java.lang.integer不能转换为类java.lang.double(java.lang.integer和java.lang.double位于加载程序“引导程序”的模块java.base中)”“如何修复它?
我正在使用Jackson XML 2.8.9,不幸的是,我找不到任何方法将空/空集合序列化为空节点。 负责序列化为XML的方法: 我尝试使用: > 序列化提供程序: Jackson 2.9.0 EMPTY_ELEMENT_AS_NULL功能: 不幸的是,什么都不管用。有人知道如何实现它吗? 试验方法: ReportView类: 我用示例代码准备了一个存储库:https://github.com/a