标签: xmlmapper

使用Jackson XML映射器将Java List序列化为XML

嗨,我需要使用Jackson-dataformat XMLMapper从JAVA创建XML.XML应该是这样的

<Customer>
  <id>1</id>
  <name>Mighty Pulpo</name>
    <addresses>
      <city>austin</city>
      <state>TX</state>
    </addresses>
    <addresses>
      <city>Hong Kong</city>
      <state>Hong Kong</state>
    </addresses>
</Customer>
Run Code Online (Sandbox Code Playgroud)

但我总是喜欢额外的"<addresses> </ addresses>"标签.

<Customer>
  <id>1</id>
  <name>Mighty Pulpo</name>
<addresses>
    <addresses>
      <city>austin</city>
      <state>TX</state>
    </addresses>
    <addresses>
      <city>Hong Kong</city>
      <state>Hong Kong</state>
    </addresses>
<addresses>
</Customer>
Run Code Online (Sandbox Code Playgroud)

我使用下面的代码来创建XML

JaxbAnnotationModule jaxbAnnotationModule = new JaxbAnnotationModule();
XmlMapper mapper = new XmlMapper();
mapper.enable(SerializationFeature.INDENT_OUTPUT);
mapper.registerModule(jaxbAnnotationModule);
mapper.registerModule(new GuavaModule());
String xml = mapper.writeValueAsString(customer);
System.out.println(xml);
Run Code Online (Sandbox Code Playgroud)

有人可以帮帮我吗?如何删除额外的标签呢.我试过使用@XmlElement,但它没有帮助.TIA!

java xml pojo jackson xmlmapper

17
推荐指数
2
解决办法
2万
查看次数

com.fasterxml.jackson.dataformat.xml.XmlMapper.coercionConfigDefaults() 上的 NoSuchMethodError

我正在解析一个 XML 字符串,并使用 Jackson 库中的a将其转换为JsonNodeScala 中的a。XmlMapper我在 Databricks 笔记本上编码,因此编译是在云集群上完成的。编译我的代码时,我收到了这个错误java.lang.NoSuchMethodError: com.fasterxml.jackson.dataformat.xml.XmlMapper.coercionConfigDefaults()Lcom/fasterxml/jackson/databind/cfg/MutableCoercionConfig;,其中有一百行“at com.databricks. ...”

我可能忘记导入一些东西,但对我来说这没关系(如果我错了请告诉我):

import ch.qos.logback.classic._
import com.typesafe.scalalogging._
import com.fasterxml.jackson._
import com.fasterxml.jackson.core._
import com.fasterxml.jackson.databind.{ObjectMapper, JsonNode}
import com.fasterxml.jackson.dataformat.xml._
import com.fasterxml.jackson.module.scala._
import com.fasterxml.jackson.module.scala.experimental.ScalaObjectMapper
import java.io._
import java.time.Instant
import java.util.concurrent.TimeUnit
import javax.xml.parsers._
import okhttp3.{Headers, OkHttpClient, Request, Response, RequestBody, FormBody}
import okhttp3.OkHttpClient.Builder._
import org.apache.spark._
import org.xml.sax._
Run Code Online (Sandbox Code Playgroud)

由于我使用的是 Databricks,因此没有依赖项的 SBT 文件。相反,我直接在集群上安装了我需要的库。这是我正在使用的:

com.squareup.okhttp:okhttp:2.7.5
com.squareup.okhttp3:okhttp:4.9.0
com.squareup.okhttp3:okhttp:3.14.9
org.scala-lang.modules:scala-swing_3:3.0.0
ch.qos.logback:logback-classic:1.2.6
com.typesafe:scalalogging-slf4j_2.10:1.1.0
cc.spray.json:spray-json_2.9.1:1.0.1
com.fasterxml.jackson.module:jackson-module-scala_3:2.13.0
javax.xml.parsers:jaxp-api:1.4.5
org.xml.sax:2.0.1
Run Code Online (Sandbox Code Playgroud)

导致错误的代码很简单(来自这里: https: //www.baeldung.com/jackson-convert-xml-json第 5 章):

com.squareup.okhttp:okhttp:2.7.5
com.squareup.okhttp3:okhttp:4.9.0
com.squareup.okhttp3:okhttp:3.14.9
org.scala-lang.modules:scala-swing_3:3.0.0 …
Run Code Online (Sandbox Code Playgroud)

scala jackson xmlmapper databricks azure-databricks

10
推荐指数
1
解决办法
2万
查看次数

MyBatis中的XML ResultMap与关联

我看到这个问题在Google或Stack上非常奇怪。让我解释。

我的界面方法的注释中有结果图。仅在这种特殊情况下,我才需要动态查询,这就是我决定在xml文件中为接口编写整个映射器的原因。下面,我粘贴整个文件。选择查询应该可以,但是我遇到了一些困难<resultMap>

在不同的Web站点上,我一直在寻找关于此结果图的一对一,一对多,多对一关联和构造的良好解释。

我看到有某种可能性将其分成子查询,子结果映射。但是我已经使用myBatis注释完成了此操作,并且我想使用它。您能指导我,应该如何构造resultMap?我看不到需要构造函数,区分<collection>符,但它仍在大喊……(这就是为什么我加了标记)-IntelliJ强调了整个<resultMap>说法:"The content of element type "resultMap" must match "(constructor?,id*,result*,association*,collection*,discriminator?)"

我知道这似乎很明显,但是我完全不知道如何正确地做。请帮我。

xml映射器文件:

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="pl.net.manager.dao.UsageCounterDAO">
    <select id="getUsageCounterList" resultType="pl.net.manager.domain.UsageCounter"
            resultMap="getUsageCounterListMap">
        SELECT * FROM usage_counter WHERE
        <if test="apiConsumerIdsList != null">
            api_consumer IN
            <foreach item="item" index="index" collection="apiConsumerIdsList"
                     open="(" separator="," close=")">
                #{item}
            </foreach>
            AND
        </if>
        <if test="serviceConsumerIdsList != null">
            service IN
            <foreach item="item" index="index" collection="serviceConsumerIdsList"
                     open="(" separator="," close=")">
                #{item}
            </foreach>
            AND
        </if>
        <if test="dateFrom != …
Run Code Online (Sandbox Code Playgroud)

java associations dynamicquery xmlmapper mybatis

3
推荐指数
1
解决办法
6928
查看次数

如何在Spring Boot应用程序中自动装配默认的XmlMapper

我有一些问题XmlMapper在我的一个Spring Boot项目中自动装配默认的Jackson .我已经创建了一个简单的示例项目来说明这一点.

我在这里做的大致基于这个:

http://docs.spring.io/spring-boot/docs/1.2.2.RELEASE/reference/htmlsingle/#howto-write-an-xml-rest-service

http://docs.spring.io/spring-boot/docs/1.2.2.RELEASE/reference/htmlsingle/#howto-customize-the-jackson-objectmapper

来自pom.xml

<!-- ... -->

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.2.2.RELEASE</version>
</parent>

<!-- ... -->

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.dataformat</groupId>
        <artifactId>jackson-dataformat-xml</artifactId>
    </dependency>
</dependencies>

<!-- ... -->
Run Code Online (Sandbox Code Playgroud)

主要课程:

@SpringBootApplication
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}
Run Code Online (Sandbox Code Playgroud)

演示POJO,没有指定@XmlRootElement,所以它不会使用JAXB:

@JsonInclude(Include.NON_NULL)
public class Demo {
    private String stringProperty;
    private int intProperty;
    public String getStringProperty() {
        return stringProperty;
    }
    public void setStringProperty(String stringProperty) {
        this.stringProperty …
Run Code Online (Sandbox Code Playgroud)

xmlmapper spring-boot

3
推荐指数
2
解决办法
8077
查看次数

XMLWriter使用zdef扩展属性名称?

我尝试使用XMLMapper将一些配置类序列化为xml配置文件.但是我对属性生成有些麻烦.实际上生成的XML是完美的,但XMLMapper有时会为我的属性名称添加前缀.

例如

<Config zdef-2031720317:value="0">
Run Code Online (Sandbox Code Playgroud)

代替

<Config value="0">
Run Code Online (Sandbox Code Playgroud)

这真的很糟糕,因为我不能再用XOM处理xml结构了:(

这种效果来自哪里?我发现xml生成器似乎会自动修复命名空间以使属性唯一.为什么这是必要的,我该如何避免呢?

java xml-serialization jackson xmlmapper fasterxml

2
推荐指数
2
解决办法
2050
查看次数

XMLMapper中的时区规范是否有效?

我在XML文件中收到DateTime,如2009-12-14 05:07:38Z.

所以,我认为这是一个错误,但在谷歌搜索后,我发现:

http://www.w3schools.com/Schema/schema_dtypes_date.asp

时区要指定时区,您可以通过在时间后添加"Z"来输入UTC时间的时间 - 如下所示:

09:30:10Z

但是当我在我的XMLMapper中的一个节点中使用DateTime时:我的日期时间是截断的,我只是得到日期.

我需要更多咖啡吗?

管理这个的方法是什么?

谢谢

xml delphi timezone delphi-2010 xmlmapper

0
推荐指数
1
解决办法
200
查看次数