Dựa trên lỗi / chuỗi, nó sẽ xuất hiện một số vấn đề không rõ ràng với việc hỗ trợ trình truy cập thuộc tính dạng chấm. Dựa trên chuỗi danh sách gửi thư, có vẻ như đánh giá chuỗi queryField sẽ là cách tốt nhất của bạn:
def result = [a: [b: [c: 42]]]
def queryString = 'a.b.c'
def evalResult = Eval.x(result, 'x.' + queryString)
assert evalResult == 42
Tập lệnh trên Groovy Web Console
Chuỗi danh sách gửi thư hơi cũ, vì vậy có một lớp mới (ít nhất là 1.7.2) Eval có thể giúp chạy các đoạn mã nhỏ không có ràng buộc lớn.
Nếu không, bạn có thể tách chuỗi và thực hiện đệ quy đánh giá thuộc tính trên đối tượng, tái tạo một cách hiệu quả tập hợp con của hành vi truyền tải GPath.