【发布时间】:2015-09-29 19:22:43
【问题描述】:
我正在尝试使用 gson.fromJson 反序列化由邮递员发送的对象。
@POST
@Path( "company" ) // takes name as a path parameter
@Produces( "application/json" ) // response formatted as JSON
public Response insertCompany(String content) {
Gson gson = new Gson();
CompanyWithNoIdReturn newCompany = gson.fromJson(content, CompanyWithNoIdReturn.class);
}
public class CompanyWithNoIdReturn {
private final String name;
private final String description;
private final String logo;
public CompanyWithNoIdReturn(String name, String description, String logo)
{
this.name = name;
this.description = description;
this.logo = logo;
}
public String getName() {
return name;
}
public String getDescription() {
return description;
}
public String getLogo() {
return logo;
}
}
出现的错误是:javax.servlet.ServletException:
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException:应为 BEGIN_OBJECT 但为 STRING 在第 1 行第 1 列
我理解这意味着它希望它以{ 开头,而不是" 中提到的here。虽然我不明白我该如何解决它?
编辑:使用 form - data 时,内容类似于:
content = (java.lang.String) "------WebKitFormBoundaryUG5yy1gW9G2V5qcz
Content-Disposition: form-data; name="CompanyName"
newCompanyName2
------WebKitFormBoundaryUG5yy1gW9G2V5qcz
Content-Disposition: form-data; name="Description"
newDescription2
------WebKitFormBoundaryUG5yy1gW9G2V5qcz
Content-Disposition: form-data; name="logo"
newLogo2
------WebKitFormBoundaryUG5yy1gW9G2V5qcz--
"
【问题讨论】:
-
你的输入 JSON 在哪里?
-
@Amila 我添加了邮递员的图片\