我有一個接受JSON作爲正文請求的Java API(其餘)。 我需要將主體映射到一個java類,但其中一個JSON屬性是JSON本身,我無法預測其結構。POST JSON與JSON屬性到Java API休息
例如,這是資源:
@POST
public void paymentInfo(PaymentInfoEntity paymentInfoEntity)
throws JsonGenerationException, JsonMappingException, IOException {
...
}
這是一個JSON例如:
{
progressive: 123,
params: { [another valid JSON node] }
}
這是我怎麼想的實體:
public class PaymentInfoEntity {
public Integer progressive;
public JsonNode params;
}
隨着這種配置,我有這個錯誤:
org.codehaus.jackson.map.JsonMappingException: Can not construct instance of com.fasterxml.jackson.databind.JsonNode, problem: abstract types can only be instantiated with additional type information
如果我聲明BaseJsonNode params
而不是JsonNode params
,則會出現同樣的錯誤。
如果我聲明,而是Object params
,它的工作原理。 我該如何解析一個JSON呢?在這種情況下,params.toString()
的格式是{key1=stringvalue1, key2=stringvalue2}
而不是{key1: "stringvalue1", key2: "stringvalue2"}
。
哪個是實現我的目標的最佳選擇? 謝謝!
正如我寫的,我也試過BaseJsonNode,結果相同。 Map似乎可行,謝謝。然後我使用新的ObjectMapper()獲取JSON對象。writeValueAsString(paymentInfoEntity.getParams())。 –