3

外部システムから XML が提供されており、これを解析する必要があります。値の 1 つに、Jackson が問題を抱えている HTML (エンコードされていない) が含まれています。

Exception in thread "main" com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of java.lang.String out of START_OBJECT token

XML は次のようになります。

<lookup_info>-- [Snipped] --------------<BR/>
Some more snipped data.<BR/>
<BR/>
And some more snipped data..<BR/>
<BR/>
And even more snipped data...</lookup_info>

私のコードは、このフィールドを除くすべてのフィールドで正常に動作します。私の pojo コードは次のようになります。

@JacksonXmlProperty(localName = "customer_name")
private String customerName;

@JacksonXmlProperty(localName = "email")
private String email;

@JacksonXmlProperty(localName = "lookup_info")
private String lookupInfo;

lookupInfotypeに変更すると、Jackson が生データを...Objectにマッピングしていることがわかります。LinkedHashMap{BR=null}

ジャクソンに生の値をシリアル化させるにはどうすればよいStringですか? 私は試してみましたが@JacksonXmlText、その結果lookupInfonull.

4

2 に答える 2

0

問題は、xml が無効であることです。xml 要素内に HTML コンテンツを埋め込む場合は、コンテンツを適切にエンコードする必要があります。コンテンツを生成している場合は、適切な xml ジェネレーターがそのエンコーディングを処理する必要があります。

xml は次のようになります。

<lookup_info>-- [Snipped] --------------&lt;BR/&gt;
Some more snipped data.&lt;BR/&gt;
&lt;BR/&gt;
And some more snipped data..&lt;BR/&gt;
&lt;BR/&gt;
And even more snipped data...</lookup_info>
于 2016-04-15T14:11:09.193 に答える