从您的代码看起来,您似乎正在尝试使用Object类型的数组自己创建一个JSON字符串.我唯一的猜测是为什么这不起作用是GSON(播放使用的JSON库)不知道如何将其转换为键值对(尽管你的数组是二维的).那么如何将statusArray更改为String及其内容为:
{
"Status": "401",
"Message": "Unauthorized",
"Detail": "No API Key Supplied"
}
把它放到renderJSON(statusArray)中,你应该没问题.
作为替代方案,您可以创建一个简单的.json模板,如下所示:
{
"Status": ${status},
"Message": ${message},
"Detail": ${detail}
}
并通过渲染(状态,消息,细节)从控制器方法调用它.状态,消息和细节也是字符串.示例控制器方法:
public static void loginFail(final String status, final String message, final String detail) {
render(status, message, detail);
}
并且您的模板将被称为loginFail.json(控制器方法的名称).这样,您可以使用任何逻辑调用控制器方法来验证登录.登录失败后,您可以通过调用loginFail方法指定原因(通过状态,消息和详细信息).