gpt4 book ai didi

java - Play Framework 中的 Json 响应字符编码

转载 作者:太空宇宙 更新时间:2023-11-04 07:51:55 24 4
gpt4 key购买 nike

我遇到了问题,需要你的帮助。

我正在使用 Java 中的 Play Framework v1.2.4 的服务器工作,该服务器用于我的移动应用程序,并且 Json 响应存在问题。

我一直使用 View 来编码我的 Json 响应,但我意识到当我使用特殊字符(如 ñ、\n、á、é 等)时会出现问题,并且我的移动应用程序运行错误。

代码如下:

{
"id":${data[0]},

"messages":
[
#{list items:data[1], as:'message'}
{
"text":"${message.text}"
}${message_isLast ? '' : ','
}#{/list}
] }

我尝试使用 java 方法来正确解析响应,而不是在 .json View 中,而且没问题。这就是代码:

JsonObject jsonOut = new JsonObject(); 
jsonOut.addProperty("id",conversation.id);
JsonArray jsonArray = new JsonArray();

for(int i = 0; i < conversation.messages.size; i++) {
Message message = conversation.messages.get(i);
JsonObject jsonMessage = new JsonObject();
jsonMessage.addProperty("text", message.text);
jsonArray.add(jsonMessage);
}

jsonOut.add("messages", jsonArray);

renderText(jsonOut);

我的问题是,我是否可以在 View 中执行某些操作,将变量正确解析为 json 格式,而无需手动执行,因为我有很多必须更改的响应。

最佳答案

使用模板来渲染 JSON 字符串是......不好(无论如何,在这里我应该完成我的答案......)。

JSON 序列化程序通常会注意正确的引号、转义特殊字符、尊重类型、对字符进行编码(如果需要)等...正如我所看到的,您的模板没有这样做。

使用模板,你需要自己做所有事情,如果你不完全了解 JSON 规范,你就注定会失败。这不仅仅是将 ${message.text} 粘贴到适当的位置...

换句话说:你的第二种方法总是比第一种方法更好。

关于java - Play Framework 中的 Json 响应字符编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14316948/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com