- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我收到 JSON 解析错误:无法从 START_OBJECT token 中反序列化 java.util.HashSet
的实例,在我的 Spring Boot 项目中,当我尝试保存时与我的另一个 Pojo 映射为一对多关系的 Pojo 类对象。我不确定我是否在 Postman 中发送了正确格式的 JSON。我正在尝试保存定义了 Collection 元素 Set 的持久类的值。
父 Pojo 类:
package com.example.demo.model;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.Table;
@Entity
@Table(name = "vendor")
public class Vendor {
@Id
int vendorId;
@Column
String vendorName;
@OneToMany(fetch = FetchType.LAZY, targetEntity = Customer.class, cascade = CascadeType.ALL)
@JoinColumn(name = "vendorId")
Set children;
public int getVendorId() {
return vendorId;
}
public void setVendorId(int vendorId) {
this.vendorId = vendorId;
}
public String getVendorName() {
return vendorName;
}
public void setVendorName(String vendorName) {
this.vendorName = vendorName;
}
public Set getChildren() {
return children;
}
public void setChildren(Set children) {
this.children = children;
}
}
子 Pojo 类:
package com.example.demo.model;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import org.hibernate.annotations.GeneratorType;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
@Entity
@Table(name = "customer")
public class Customer {
@Id
@GeneratedValue(strategy= GenerationType.AUTO)
int customerId;
@Column
String customerName;
public int getCustomerId() {
return customerId;
}
public void setCustomerId(int customerId) {
this.customerId = customerId;
}
public String getCustomerName() {
return customerName;
}
public void setCustomerName(String customerName) {
this.customerName = customerName;
}
}
Controller :
package com.example.demo.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import com.example.demo.model.Vendor;
import com.example.demo.service.VendorDataSaveService;
@RestController
public class VendorSaveController {
@Autowired
private VendorDataSaveService dataSaveService;
@PostMapping("/save")
public void saveVendor(@RequestBody Vendor vendor) {
dataSaveService.saveVendorRecord(vendor);
}
}
服务类:
package com.example.demo.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.example.demo.model.Vendor;
import com.example.demo.repository.VendorDataSaveRepository;
@Service
public class VendorDataSaveService {
@Autowired
private VendorDataSaveRepository repository;
public void saveVendorRecord(Vendor vendor) {
repository.save(vendor);
}
}
存储库类:
package com.example.demo.repository;
import org.springframework.data.jpa.repository.JpaRepository;
import com.example.demo.model.Vendor;
public interface VendorDataSaveRepository extends JpaRepository<Vendor, Integer> {
}
我从 Postman 发送的 JSON 格式:
"vendorId" : 101,
"vendorName" : "JAIN BOOKS",
"children" : {
"customerId" : 1,
"customerName" : "AMIT"
}
}
我在控制台上收到此错误消息:-
Failed to read HTTP message: org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize instance of
java.util.HashSet
out of START_OBJECT token; nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance ofjava.util.HashSet
out of START_OBJECT token at [Source: (PushbackInputStream); line: 4, column: 15] (through reference chain: com.example.demo.model.Vendor["children"])
我需要改进什么?
最佳答案
的确,JB Nizet 在评论中指出了这一点。 Jackson 告诉您它正在尝试将 JSON 反序列化为 Set
(java.util.HashSet
),这是一个集合,但文件的那部分的 JSON 是一个对象 START_OBJECT
代替。它不知道如何将一个对象变成一个集合,所以它放弃了。错误在 Vendor["children"]
您的请求包含针对 child 的:
"children" : {
"customerId" : 1,
"customerName" : "AMIT"
}
因为 children
是一个集合,如果你想要一个单独的 Child,它应该是这样的:
"children" : [
{
"customerId" : 1,
"customerName" : "AMIT"
}
]
这将是一个 JSON 格式的对象数组,可以很好地对应于 Customer
的 Set
。
关于json - 我正面临 **JSON 解析错误 : Cannot deserialize instance of `java.util.HashSet` out of START_OBJECT token** in Spring Boot project,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58824476/
我不知道我的 ES 查询有什么问题。我想按特定字段进行筛选,并按其他字段排序。 请求: GET /_search { "query" : { "term": {
我一直在尝试运行以下查询,但每次运行时都会收到以下错误: nested: ElasticsearchParseException[Expected field name but got START_O
我正在针对 AWS Elasticsearch 5.1 运行此查询并收到格式错误的查询错误。这是请求的正文。我基本上只是检查该字段在时间范围内是否存在。 { "query": { "boo
我想在Elasticsearch中表达这个SQL: select * from ticket where user_id = 1 and (class_a = 1000010 or class_b =
我有以下查询, 1.获取所有日志类型错误的数据。 2.排除logmessage字段中包含error occured的所有数据。 curl -s -XGET 'localhost:9200/index_
尝试将我的 json 格式的 tcpdump 发送到 elasticsearch 时,我收到以下错误: curl -X PUT --data-binary @myjson 'localhost:920
在 elasticsearch 5.6.2 和 5.6.3 (Ubuntu 16.04) 中,这个查询 GET _search { "simple_query_string": {
我的 Json 看起来像(并且不可修改) { .... "Sale": [ "SaleLines": { "SaleLine":
我对 Codehaus Jackson 的用户有疑问。我有一个具有下一个属性和映射器声明的对象: public class AuthenticatedPrincipal implements Seri
有人可以解释一下这个查询有什么问题吗?我需要将此生成的查询从 Elasticsearch 2 转换为 Elasticsearch 6。在 ES2 中,此查询运行良好,但在 ES6 中,它会抛出一个错误
我想在 aggs 中放置双重过滤器。像这样。 "aggs": { "download1" : { "filter" : [ { "term": { "IPV
当我尝试获取之前插入数据库的更新数据时,我的代码中遇到了一些问题。 postman 的错误代码: "JSON parse error: Can not deserialize instance of
我试图从 elasticsearch 1.7 迁移到 5.1,但我遇到了问题: curl -XGET http://127.0.0.1:9200/openlist_ru-formulars/formu
我的搜寻内容: { "query":{ "filtered":{ "filter":{ "bool":{ "s
我正在使用Putelasticsearch5处理器,但上游又有几个处理器。 上游处理器生成的json如下所示: {“id”:“1234”,“名称”:“苹果”} {“id”:“5678”,“名称”:“橙
我是Elastic Search的新手,并且在我的应用程序中使用ES。当我在ES的单个表上运行简单查询时,它就可以工作了。.但是,当我使用嵌套查询时,它并不能给我正确的结果。 基本上,我有两个表peo
在 Elasticsearch 中出现以下错误。 RemoteTransportException[[CN8keD-][127.0.0.1:9300][indices:data/write/updat
我面临着 Spring 和 Jackson 的问题。我试图从 this API 获取输入。我使用 http://www.jsonschema2pojo.org/ 创建了 Java 模型 型号为 pac
大家好,我想将 int 和 String 数组作为 RequestBody 发送:这是 json: { "customUiModel": [1, 3, 5], "user": "use
Elasticsearch 在 Elasticsearch 中给出类似 Unknown key for a START_OBJECT in [bool] 的错误。 我的查询如下:已更新 var sea
我是一名优秀的程序员,十分优秀!