Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Play框架中的Json响应字符编码_Java_Json_Playframework_Playframework 1.x - Fatal编程技术网

Java Play框架中的Json响应字符编码

Java Play框架中的Json响应字符编码,java,json,playframework,playframework-1.x,Java,Json,Playframework,Playframework 1.x,我有个问题,我需要你的帮助 我在一台服务器上工作,该服务器使用java版本的Play Framework v1.2.4,用于我的移动应用程序,Json响应中有一个问题 我总是使用视图来加密我的Json响应,但我意识到当我使用特殊字符(如ñ、\n、á、é等)时会出现问题,并且我的移动应用程序运行错误 代码如下: { "id":${data[0]}, "messages": [ #{list items:data[1], as:'message'} {

我有个问题,我需要你的帮助

我在一台服务器上工作,该服务器使用java版本的Play Framework v1.2.4,用于我的移动应用程序,Json响应中有一个问题

我总是使用视图来加密我的Json响应,但我意识到当我使用特殊字符(如ñ、\n、á、é等)时会出现问题,并且我的移动应用程序运行错误

代码如下:

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

  "messages": 
  [
      #{list items:data[1], as:'message'}
      {           
           "text":"${message.text}"
      }${message_isLast ? '' : ','
}#{/list}
 ] }
我尝试用java方法来正确解析响应,而不是在.json视图中,这样做是可以的。这就是代码:

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);
JsonObject jsonOut=new JsonObject();
addProperty(“id”,conversation.id);
JsonArray JsonArray=新的JsonArray();
for(int i=0;i

我的问题是,我是否可以在视图中做一些事情,将变量正确解析为json格式,而无需手动操作,因为我有很多响应需要更改。

json的默认编码是UTF-8。 Java的默认编码取决于语言环境


您需要确保运行Play的JVM也以Charset.defaultCharset()的形式运行UTF-8。

JSON的默认编码是UTF-8。 Java的默认编码取决于语言环境


您需要确保运行Play的JVM也以Charset.defaultCharset()的形式运行UTF-8。

编译器和编辑器都应该将其编码设置为“UTF-8”。Play框架和JSON已经使用UTF-8。属性文件应该是
\u…
编码的。错误可能存在于非Java文件中。

编译器和编辑器都应将其编码设置为“UTF-8”。Play框架和JSON已经使用UTF-8。属性文件应该是
\u…
编码的。错误可能存在于非Java文件中。

使用模板呈现JSON字符串是。。。糟糕(无论如何,我应该在这里完成我的答案…)

JSON序列化程序通常负责正确的引号、转义特殊字符、接受类型、编码字符(如果需要)等。。。正如我所看到的,你的模板没有做到这一点

使用模板,您需要自己完成所有工作,如果您不完全了解JSON规范,您将被判失败。这不仅仅是在适当的位置粘贴
${message.text}


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

使用模板呈现JSON字符串是。。。糟糕(无论如何,我应该在这里完成我的答案…)

JSON序列化程序通常负责正确的引号、转义特殊字符、接受类型、编码字符(如果需要)等。。。正如我所看到的,你的模板没有做到这一点

使用模板,您需要自己完成所有工作,如果您不完全了解JSON规范,您将被判失败。这不仅仅是在适当的位置粘贴
${message.text}


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

但我的服务器已上载到Heroku服务器。我可以将默认编码设置为UTF-8吗?怎么做?但是我的服务器被上传到Heroku服务器上了。我可以将默认编码设置为UTF-8吗?怎么做?谢谢你的回答。我必须重做我所有的应用程序,但是知道正确的方法很好。谢谢你的回答。我必须重做我所有的应用程序,但知道正确的方法很好。