- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
获取 MismatchedInputException。在这里搜索了很多问题,但发现 JSONMappingException 居多。我不明白它们是相同还是不同。
实体如下:
@Entity
@Table
@NamedQueries({
@NamedQuery(name="User.findAll", query="SELECT u FROM User u"),
@NamedQuery(name="User.findByEmail", query="SELECT u FROM User u WHERE u.email=:pEmail")
})
public class User {
@Id
@GenericGenerator(name = "idGenerator", strategy = "uuid2")
@GeneratedValue(generator = "idGenerator")
private String id;
private String firstName;
private String lastName;
@Column(unique=true)
private String username;
@Column(unique=true)
private String email;
private String password;
private String role;
}
所有的 getter 和 setter 就位。
Controller 映射函数如下:
@RequestMapping(method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_UTF8_VALUE, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
public User create(@RequestBody User user) {
return service.create(user);
}
服务如下:
@Override
@Transactional
public User create(User user) {
User existing = repository.findByEmail(user.getEmail());
if(existing == null){
repository.create(user);
}
return user;
}
存储库如下:
@Override
public User findByEmail(String email) {
TypedQuery<User> query = em.createNamedQuery("User.findByEmail", User.class);
query.setParameter("pEmail", email);
List<User> users = query.getResultList();
if(users != null && users.size()==1){
return users.get(0);
}
return null;
}
@Override
public User create(User user) {
em.persist(user);
return user;
}
以下是我使用的依赖项:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.0.pr2</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>5.2.9.Final</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>6.0.6</version>
</dependency>
我正在通过Postman测试,我还没有创建前端。以下是我发送的 JSON:
[{
"firstName": "hgf",
"lastName": "frew",
"username": "erf",
"email": "bgghjk",
"password": "bgte",
"role": "trrere"
}
]
最后是控制台日志:
Thu May 11 13:56:43 CDT 2017 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
May 11, 2017 1:57:52 PM org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver handleHttpMessageNotReadable
WARNING: Failed to read HTTP message: org.springframework.http.converter.HttpMessageNotReadableException: Could not read document: Can not deserialize instance of priyanka.movieflix.entity.User out of START_ARRAY token
at [Source: (PushbackInputStream); line: 1, column: 1]; nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Can not deserialize instance of priyanka.movieflix.entity.User out of START_ARRAY token
at [Source: (PushbackInputStream); line: 1, column: 1]
我不确定是什么导致了这个异常。当我启动应用程序时,表正在数据库中正确创建,我也在 GET 请求中正确获取数据。
最佳答案
您已将 RequestBody
映射到单个 User
对象,但您正在发送 JSON 数组。
[{
"firstName": "hgf",
"lastName": "frew",
"username": "erf",
"email": "bgghjk",
"password": "bgte",
"role": "trrere"
}
]
您应该发送一个 JSON 对象,而不是如下所示
{
"firstName": "hgf",
"lastName": "frew",
"username": "erf",
"email": "bgghjk",
"password": "bgte",
"role": "trrere"
}
或更改 Controller 映射以接收 User
对象的集合作为
@RequestBody List<User> users
关于java - com.fasterxml.jackson.databind.exc.MismatchedInputException : Can not deserialize instance of object out of START_ARRAY token,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43923914/
我正在尝试将包从“com.fasterxml.jackson”重新定位到我自己的包(即“mypackage.com.fasterxml.jackson”),然后在我拥有的另一个 JAR 中使用它。 我
我将 jackson 库从 2.5.4 升级到 2.10.1,如下所示,我收到以下错误: "WFLYCTL0080: Failed services" => { "jboss.depl
我在 Wildfly 8.2.1 和 Glassfish 4.1 中使用 Spring Data JPA 部署 Spring MVC 应用程序时遇到问题(它在 Wildfly 10 中工作,但我不允许
问题如何指示ObjectMapper他应该通过某些条件(字段)过滤对象的嵌套集合。通过代码查看解释: 通过代码进行解释: 我必须将 Container 对象转换为 JSON。但我想根据 Entry.v
我有一个如下的dto public class MyClass { @JsonProperty("value") @JsonInclude(JsonInclude.Include.NO
有没有办法反序列化 JSON 数组 {["a", "b", 1]} 进入以下 Java 类 class MyObject { private String firstItem; private
How does Jackson deserialisation work when creating a Java object from JSON? A common conception is
我从代码中得到以下输出:{“列表”:[{“x”:“y”},{“a”:“b”}]} 相反,我想得到输出[{"x":"y"},{"a":"b"}] 代码如下。 public class Test { Li
我需要生成确认此 XSD 的 XML: 所以输出是这样的: A B C 问题是,如果我像这样在 Java bean 中注释变量: @JsonProperty("Line"
我有来自客户的 xml: 和简单的 Java 类 import com.fasterxml.jackson.dataformat.xml.annotation.Jackso
我已映射实体,并以 JSON 格式发送到服务。这是我的实体 @Entity @Table(name = "company") @JsonIdentityInfo(generator = ObjectI
以下类(class)显示问题 - 无法解决导入 com.fasterxml.jackson - import com.fasterxml.jackson.annotation.JsonIgnorePr
我的字符串是:json = {"foo":"bar"}{"foo":"bar"} ======================== ObjectMapper mapper = new ObjectMa
我有以下 JSON: "segmentid": { "mot": { "@displaytype": "B", "@type": "BLT",
我有这样的 csv 文件: headerA;headerB;headerC val1;val2;val3; val4;val5;val6; some_word;val7; 所以。最后一行不同。它不适合
我有以下 XML 架构: Intermediate A Intro to A Advanced B 我需要将其转换为 POJO 为: public class Schedu
我正在使用两个 JSON。 第一个具有字符串形式的 ID。 "details": { "id": "316.0" } 另一个的 ID 为 Integer。 "details": { "
当尝试序列化一个类别时,我得到一个 stackoverflow。 异常 Warning: StandardWrapperValve[dispatcher]: Servlet.service() for
在 maven pom.xml 中: com.fasterxml.jackson.core jackson-core 2.5.0
本文整理了Java中com.fasterxml.jackson.core.json.WriterBasedJsonGenerator类的一些代码示例,展示了WriterBasedJsonGenerat
我是一名优秀的程序员,十分优秀!