Lambda有一个内置的JacksonSerializer,所以当你的方法返回一个对象时,它会将它序列化为JSON表示。
我有一个由以下属性组成的对象:
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对象本身(不是树,而是 Package 器对象)被序列化了。
{
"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 * ? *"
}
是否有人对为什么会发生这种情况有任何见解,以及对解决方案/变通办法有任何建议?
最新消息:
我特别使用了JsonNode,因为model
和field
是动态的,并且在运行时提供,所以我不会提前知道结构。
1条答案
按热度按时间ctehm74n1#
假设“model”和“field”总是对象,而不是数组,你可以为它们使用
Map<String, Object>
。对于子对象,只需添加其他Map作为值。