2011-01-09 21 views
6

Tôi đang sử dụng Play! và tôi có một mô hình (một thực thể) có một biến kiểu Map.Cách xác định Bản đồ trong một tệp YAML trong Play! khuôn khổ?

Để thực hiện một số kiểm tra, tôi tải một tệp YAML mỗi khi tôi khởi động ứng dụng, nhưng tôi không biết cú pháp để xác định Bản đồ.

Hãy nói rằng tôi có lớp này

public class aClass { 
    public int arg1; 
    public String arg2; 
    public Map<String, Integer> arg3; 
} 

sẽ file YAML của tôi trông như thế nào? Tôi đã thử điều này:

aClass(object1) 
    arg1: 34 
    arg2: aString 
    arg3: [key1: value1, key2: value2] <- What do I do here? 

Đây là một trong nhiều lần thử của tôi. Tôi không biết cú pháp và tôi không thể tìm thấy nó trên Internet. Tôi nghĩ rằng chơi! sử dụng SnakeYAML làm trình phân tích cú pháp YAML.

Trong tài liệu tôi đã tìm thấy một số ví dụ, nhưng không có ví dụ nào trong số chúng hoạt động.

Trong ứng dụng của tôi, mọi thứ hoạt động ngoại trừ biến Bản đồ (arg3 trong ví dụ) có kích thước là 0 phần tử.

Cảm ơn.

+0

Theo tài liệu SnakeYAML và tài liệu Play, ký hiệu chính xác là sử dụng dấu chấm hỏi. Tuy nhiên, tôi đã cố gắng để chạy mã của bạn theo cách này, và mặc dù nó biên dịch, nó không có mục! Tôi sẽ tiếp tục đào bới. – Codemwnci

+0

Tính năng này có hoạt động khi bạn sử dụng dấu hỏi không? –

+0

Tôi đã thử lại bằng cách sử dụng các dấu chấm hỏi. Nó biên dịch, nhưng Map của tôi trả về null khi tôi cố gắng lấy giá trị của một trong các khóa được chỉ định trong tệp YAML. –

Trả lời

6

Theo chủ đề này trên Google Groups, có vẻ như cú pháp bạn cần là sử dụng dấu chấm hỏi.

Chuỗi có bản đồ đang hoạt động theo cú pháp sau.

Bloc(b2): 
    labelSeries: testDeValeur 
    criterias: 
    ? key1 
    : value1 
    ? key2 
    : value2 

Vì vậy, tôi đoán ví dụ của bạn sẽ là

aClass(object1) 
    arg1: 34 
    arg2: aString 
    arg3: 
    ? key1 
    : value1 
    ? key2 
    : value2 

Tôi đã thử nghiệm này tuy nhiên và nó không hoạt động! Tôi sẽ đề nghị nâng cao một lỗi để xem xét điều này, bởi vì tất cả các điểm tài liệu tại đây là chính xác.

+0

Tôi đã sửa câu hỏi của mình. Nhưng tôi thấy chính xác cùng một chuỗi trên Google Groups và nó không hoạt động ... –

+0

Vì vậy, điều này không hoạt động, nhưng là câu trả lời được chấp nhận! WAT? –

Các vấn đề liên quan