Từ giao diện mã của bạn, có vẻ như bạn đang tự mình tạo chuỗi JSON, sử dụng một mảng đối tượng kiểu. Đoán duy nhất của tôi là tại sao điều này không hiệu quả là GSON (thư viện JSON được sử dụng bằng cách chơi) không biết cách chuyển đổi nó thành cặp khóa-giá trị (mặc dù mảng của bạn là 2 chiều). Vậy làm thế nào về việc thay đổi statusArray
để String và nội dung của nó để:
{
"Status": "401",
"Message": "Unauthorized",
"Detail": "No API Key Supplied"
}
Đặt rằng vào renderJSON(statusArray)
và bạn cần sử dụng tốt.
Là một thay thế bạn có thể tạo một .json
mẫu đơn giản như sau:
{
"Status": ${status},
"Message": ${message},
"Detail": ${detail}
}
và gọi nó là từ một phương pháp điều khiển thông qua render(status, message, detail)
. status
, message
và detail
cũng là Chuỗi tại đây. Ví dụ về phương pháp điều khiển:
public static void loginFail(final String status, final String message, final String detail) {
render(status, message, detail);
}
và mẫu của bạn sẽ được gọi là loginFail.json
(tên của phương pháp điều khiển). Bằng cách đó bạn có thể gọi phương thức điều khiển trong bất kỳ logic nào bạn phải xác minh thông tin đăng nhập. Sau khi đăng nhập thất bại, bạn chỉ rõ lý do tại sao (thông qua trạng thái, tin nhắn và chi tiết) bằng cách gọi phương thức loginFail
.
Nó cũng đáng chú ý là renderJSON có thể mất một đối số chuỗi là tốt, mà bỏ qua phân tích GSON. Điều này rất hữu ích nếu bạn sử dụng một cái gì đó như Jackson để phân tích cú pháp JSON của bạn (như tôi làm). –