不必从对象声明映射中的所有属性,例如:
prop1: object.prop1
Run Code Online (Sandbox Code Playgroud)
你不能像下面那样把物体放在那里吗?或者什么是实现这一目标的正确方法?
results: [
object,
values: [
test: 'subject'
]
]
Run Code Online (Sandbox Code Playgroud)
tim*_*tes 12
object.properties会给你一个class,以及
你应该能够做到:
鉴于您的 POGO 对象:
class User {
String name
String email
}
def object = new User(name:'tim', email:'tim@tim.com')
Run Code Online (Sandbox Code Playgroud)
编写一个方法来检查类并从中提取非合成属性:
def extractProperties(obj) {
obj.getClass()
.declaredFields
.findAll { !it.synthetic }
.collectEntries { field ->
[field.name, obj."$field.name"]
}
}
Run Code Online (Sandbox Code Playgroud)
然后,将其映射到您的结果映射中:
def result = [
value: true,
*:extractProperties(object)
]
Run Code Online (Sandbox Code Playgroud)
为你带来:
['value':true, 'name':'tim', 'email':'tim@tim.com']
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16340 次 |
| 最近记录: |