我目前正在使用Jackson的XmlMapper和ObjectMapper。我想将该字符串映射到一个POJO(我想我正确地使用了该术语),该POJO有一个与JSON字符串字段同名的私有字段。XML字符串对于同一字段/属性有不同的名称,我想使用JSON字段名称。
我还想从本质上“忽略”该字段(同时保留它),并将其存储为类似于JsonNode的内容,因为该字段的值可以是一些复杂的嵌套值,而没有已知的形状。
例子:
public static class OuterClass {
private String firstValue;
private InnerClass innerValue;
// ... getters/setters
}
public static class InnerClass {
private JsonNode data; // complex, nested, so no POJO to map to
private String otherValue;
// ... getters/setters
}
JSON可能如下所示:
{
"innerValue": {
"data": {
... complex stuff
},
"otherValue": "more stuff"
},
"firstValue": "thingy"
}
XML可能如下所示:
<result>
<innerValue>
<incorrectName>
... complex stuff
</incorrectName>
<otherValue>more stuff</otherValue>
</innerValue>
<firstValue>thingy</firstValue>
</result>
因此,目标是让XML与该类一起工作,包括将不正确的名称
映射到类的数据
,以及将复杂的内部部分存储为类似于JsonNode的内容,因为我没有一个类来建模它。
我让JSON与new ObjectMapper(). readValue(jsonString,OuterClass.class)
一起工作,我认为XML应该与new XmlMapper(). readValue(xmlString,OuterClass.class)
一起工作,但是我不知道在哪里与注释一起去。我已经查看了可用的不同注释,但我认为我没有找到合适的注释。我还读到,我不应该将XML转换为JsonNode,因为这可能会有问题。不过,我不需要在收到JSON/XML字符串后将其转换回XML,并且可以将其视为JSON。所以,我很感激你的帮助,谢谢!
@XmlAccessorType(XmlAccessType.PROPERTY)
public static class InnerClass {
private JsonNode data; // complex, nested, so no POJO to map to
private String otherValue;
// ... getters/setters
@XmlElement(name = "incorrectName")
protected JsonNode getData() {return data;}
}
我正在编写一个JSON接口/库,用于Bugzilla的webservice。 这可以使用注释或其他内容吗?还是要为每个这样的实例编写一个自定义反序列化程序? 我试着做了一些研究,发现了一些关于值实例化器或使用构造函数的信息,但使用构造函数不是反bean吗?我发现新特性的文档很少或难以理解。 示例: 我对一个字段使用pojo的原因是,这个用户类是由另一个具有更多字段的用户类扩展的。虽然我可以实现一个
问题内容: Jackson json注释中以下jax-b注释的等效方式是什么? 我需要生成json而不是xml,并且需要了解在jax-b中等效表示的常规jackson批注。 重命名字段。 使用getter代替字段。 如果json / xml元素名称是Java保留字(例如“ ”,“ ”,“ ”等),则这些功能尤其重要。 因此我们必须将POJO字段分别命名为“ new ”,“ _ public ”,“
Java类(用作数据传输对象): 类资源还有一个名为的字段,它的getter和setter具有不同的类型,因此出现语法错误。 由于上面的类是一个DTO,一个JSON响应(带有字段)将映射到它,并且不能使用getId(),我想将字段更改为,并相应地更改getter和setter,并用一个注释标记它,说明bind this to字段。 注意:我用的是Spring靴。我尝试使用@JSONProperty
我有下一个任务:从某个目录中读取XML文件,并将其转换为JSON字符串。问题是:初始XML和JSON对应属性的名称不同,例如XML中的x_日期和JSON中的j_日期。 我创建了一个类,其中包含JSON的必填字段,并带有这样的注释: 我已经尝试对测试XML文件进行序列化/反序列化,它似乎工作正常。但我不确定同时用JacksonXmlProperty和JsonProperty注释字段是否合适。也许最好
ObjectWithList、ListWrapper和ObjectWithWrapper类如下: MyCustomConverter类来包装/展开这些列表。 mapperConfiguration。xml配置文件 不幸的是,映射后,objectWithList的列表字段为null。我使用了调试器,在这种情况下,Dozer甚至没有输入MyCustomConverter。 令人惊讶的是,不同方向的映射
我有以下JSON字符串: 我将把它映射到以下模型: 当反序列化这个JSON字符串时,我希望能够在运行时将这些属性名称映射到不同的名称,如下所示: 例如,在反序列化过程中,我希望将“property1”的名称反序列化为“differen_property_name1”或“differen_property_name2”或“differen_property_name3”。因为我在运行时选择了新名称(