使用傑克遜的Java對象轉換成JSON傑克遜Java來JSON對象映射器修改字段的名稱
ObjectMapper mapper = new ObjectMapper();
mapper.setSerializationInclusion(Include.NON_NULL);
jsonMessage = mapper.writeValueAsString(object);
的結果是場「參與者」(它是對象實例的一部分)
participants Arrays$ArrayList<E>
被重新命名爲 「participantsList」
participantsList":[{"userId":"c1f9c"}]
即 「列表」 追加到字段名。我瀏覽了傑克遜的文檔,但沒有找到預防這種情況發生的方法。這可能嗎?在獨立項目中測試上述代碼不會導致相同的結果(即不發生重命名)。傑克遜爲什麼這樣做?不幸的是,該對象是第三方,我不能改變它。
使用傑克遜版本2.3.3(用2.9.0驗證相同的行爲)。
什麼是消息對象? –
作爲writeValueAsString()的參數傳遞的實例。它是第三方對象,因此在那裏可以做的不多。 – heeboir
如果它是第三方對象,那麼您應該創建一個您控制序列化的模型。然後,您將轉換第三方對象並序列化爲JSON。這樣你就能夠註釋所有的屬性來滿足你內心的渴望。 – icirellik