我在将JSON(作为应用程序/ json内容类型)提交到具有body parser parse.json的播放框架操作时遇到问题,其中JSON包含版权符号。Play Framework 2.2在版权角色返回“无效JSON”
的失败JSON是:
{
"Test": "©"
}
返回的错误信息是400错误的请求[无效的Json]
我相信这应该工作,所有的JSON我检查验证说这应该是有效的JSON。有没有一种方法可以调试/追踪哪些游戏正在崩溃,或者有没有人有任何想法?我的下一步是在客户端对HTML进行编码,但我不认为这是需要的,我担心将来会导致兼容性问题(因为这似乎是有效的)。
我使用以下卷曲命令提交:
卷曲本地主机:9001 /索引-H “内容类型:应用/ JSON;字符集= UTF-8” -d @ failingJson.txt
注:我重新尝试(为了可复制性)直接从网站复制到txt文件并提交相同的问题。这有可能与一些无法识别的UTF-8字符有关,但是有什么方法可以真正找出为什么Play会崩溃吗?
另外,在碰到我的代码之前,它已经崩溃了,它在框架中的某处。
任何想法?
编辑1:
实际使用播放2.2,不张扬2.1
编辑2: 这里的基本控制器是什么样子:
def addItem() = Action.async(parse.json) { request =>
//Do Stuff
}
和路由:
POST /index controllers.IndexController.addItem()
编辑3: 而且,只是为了b Ë超清晰,能正常工作:
{
"Test": "©"
}
嗯,我没有得到你提供的json的这个错误。你有没有尝试将你的'Content-Type'头改为'application/json; charset = UTF-8'? – serejja
是的,我使用playframework 2.2,但我不知道如果这很重要 – serejja
你怎么发送你的测试JSON请求?如果你发布了更多的代码,这可能会有所帮助。 – estmatic