【发布时间】:2016-09-06 07:06:35
【问题描述】:
尝试使用 JSON 格式将请求数据从 JavaScript 转换为 Java。 JavaScript 中的请求正文如下所示:
{
"id": "3",
"name": "Chicken pasta",
"description": "Lets make chicken pasta",
"category": "Unassigned",
"favorite": true,
"prepTime": "",
"cookTime": "",
"ingredients": [
{}
],
"steps": [],
"user": {
"id": "2",
"username": "user2"
}
}
但在服务器端(在我的 Java 控制器中)是:
%7B%0A%09%22id%22%3A+%223%22%2C%0A%09%22name%22%3A+%22Chicken+pasta%22%2C%0A%09%22description%22%3A+%22Lets+make+chicken+pasta%22%2C%0A%09%22category%22%3A+%22Unassigned%22%2C%0A%09%22favorite%22%3A+true%2C%0A%09%22prepTime%22%3A+%22%22%2C%0A%09%22cookTime%22%3A+%22%22%2C%0A%09%22ingredients%22%3A+%5B%0A%09%09%7B%7D%0A%09%5D%2C%0A%09%22steps%22%3A+%5B%5D%2C%0A%09%22user%22%3A+%7B%0A%09%09%22id%22%3A+%222%22%2C%0A%09%09%22username%22%3A+%22user2%22%0A%09%7D%0A%7D=
所以我得到 JSON 解析异常。 那么如何编码呢?
【问题讨论】:
-
它的编码你必须解码它
-
使用 JSON.stringify() 方法将 javascript 对象转换为 json 字符串
-
已经用过了,你在JS端看到的字符串是JSON.stringify(object)
-
建议研究如何在 java 中使用 mime 类型“application/x-www-form-urlencoded”解码请求数据 - 似乎更像是一个 java 问题。
-
您在服务器上收到的字符串是 URL 编码的。您需要先对其进行 URL 解码,然后才能将其解析为 JSON。有关 java 中的 URL 解码,请参阅 this SO question。
标签: javascript java json character-encoding