0
我正在使用帶有Java 8功能的AWS Lambda。 Lambda有一個內置的Jackson Serializer,所以當你的方法返回一個對象時,它將它序列化爲一個JSON表示。Jackson JsonNode序列化
我有一個是由以下性質的onject:
private String name;
private JsonNode model;
private JsonNode field;
我省略類的所有其餘爲簡單,但它有getter/setter方法等
通常,當我在我的本地應用程序中運行它時,它可以很好地工作。 JsonNode
樹結構呈現爲JSON。例如:
{
"name": "example",
"model": {
"key": "ipAddress",
"type": "input",
"templateOptions": {
"label": "IP",
"placeholder": "Something",
"description": "The IP address.",
"required": true
}
},
"field": {
"key": "pro",
"type": "input",
"templateOptions": {
"label": "Pro",
"placeholder": "Something",
"description": "Pro Example",
"required": false
}
}
}
然而,由於一些未知的原因,當我在LAMBDA運行這個實際JsonNode對象本身(而不是樹,但包裝對象)序列化。所以,我得到這個:
{
"name": "example",
"model": {
"nodeType": "NULL",
"array": false,
"null": true,
"valueNode": true,
"containerNode": false,
"missingNode": false,
"object": false,
"pojo": false,
"number": false,
"integralNumber": false,
"floatingPointNumber": false,
"short": false,
"int": false,
"long": false,
"float": false,
"double": false,
"bigDecimal": false,
"bigInteger": false,
"textual": false,
"boolean": false,
"binary": false
},
"fields": {
"nodeType": "ARRAY",
"array": true,
"null": false,
"valueNode": false,
"containerNode": true,
"missingNode": false,
"object": false,
"pojo": false,
"number": false,
"integralNumber": false,
"floatingPointNumber": false,
"short": false,
"int": false,
"long": false,
"float": false,
"double": false,
"bigDecimal": false,
"bigInteger": false,
"textual": false,
"boolean": false,
"binary": false
},
"schedule": "0 0/1 * 1/1 * ? *"
}
沒有任何人有任何見解,爲什麼發生這種情況和解決方案/解決方法有什麼建議?
UPDATE:我專門用一JsonNode因爲model
和field
是動態的,在運行時提供
。所以我不會提前知道結構。
我不能!我特別使用JsonNode,因爲對象是動態的。 – tarka
你應該在你的問題中提及。 – rmlan
問題在於'Object'作爲JSON字符串到達系統,必須轉換爲java對象。所以即使我將它定義爲一個Object,它仍然是一個JsonNode。 – tarka