使用JsonNode作为有效负载的类型:
public class AppData { String id; JsonNode payload; String fizzbuzz; public String getId() { return id; } public void setId(String id) { this.id = id; } public JsonNode getPayload() { return payload; } public void setPayload(JsonNode payload) { this.payload = payload; } public String getFizzbuzz() { return fizzbuzz; } public void setFizzbuzz(String fizzbuzz) { this.fizzbuzz = fizzbuzz; } public static void main(String[] args) throws IOException { String json = "{n" + " "id" : "12345",n" + " "payload" : {n" + " "foo" : 24,n" + " "bar" : false,n" + " "whistlefeather" : "Yes of course"n" + " },n" + " "fizzbuzz" : "wakka wakka"n" + "}"; ObjectMapper om = new ObjectMapper(); AppData appData = om.readValue(json, AppData.class); System.out.println("appData ID = " + appData.getId()); System.out.println("appData fizzbuzz = " + appData.getFizzbuzz()); System.out.println("appData payload = " + appData.getPayload()); String json2 = "{n" + " "id" : "12345",n" + " "payload" : "Please save me to a MongoDB",n" + " "fizzbuzz" : "wakka wakka"n" + "}"; appData = om.readValue(json2, AppData.class); System.out.println("appData ID = " + appData.getId()); System.out.println("appData fizzbuzz = " + appData.getFizzbuzz()); System.out.println("appData payload = " + appData.getPayload()); }}输出:
appData ID = 12345appData fizzbuzz = wakka wakkaappData payload = {"foo":24,"bar":false,"whistlefeather":"Yes of course"}appData ID = 12345appData fizzbuzz = wakka wakkaappData payload = "Please save me to a MongoDB"请注意,要获取有效负载的JSON字符串,您不应使用上例中的toString()。您应该使用
objectMapper.writevalueAsString(payload)。



