如何在 json 负载中格式化 Map<Entity,integer>

我正在尝试从客户端向 Rest/Api Spring Boot 后端发送实体“订单”。在 my 中OrderEntity,包含购买该订单产品的地图。


我们正在尝试使用邮递员软件生成一个正确的 JSON 字符串,该字符串希望通过 post 请求附加到正文中。


@ElementCollection

@CollectionTable(name = "product.order", joinColumns = @JoinColumn(name = "order.id"))

@MapKeyJoinColumn(name = "product.id")

@Column(name = "quantity")

//@JsonSerialize(keyUsing = ProdottoMapSerializer.class)

@JsonDeserialize(keyUsing = ProdottoMapDeserializer.class)

订单实体


public OrderEntity(Map<ProductEntity, Integer> product, ClientEntity cliente,Integer id, String data, Float totale, String fattura) {

        this.product = product;

        this.client = client;

        this.id = id;

        this.data = data;

        this.totale = totale;

        this.fattura = fattura;

    }

@ManyToOne

private ClientEntity cliente;

产品实体


public ProductEntity(Integer id, String nome, String descrizione, String categoria, Float prezzo, String foto,

            Integer quantitaMagazzino, Integer spedizione_veloce) {

        this.id = id;

        this.nome = nome;

        this.descrizione = descrizione;

        this.categoria = categoria;

        this.prezzo = prezzo;

        this.foto = foto;

        this.quantitaMagazzino = quantitaMagazzino;

        this.spedizione_veloce = spedizione_veloce;

    }

我们在 post 请求中使用 json 尝试使用这种类型的主体:


{

    "id": 10,

    "data": "2019-07-11 00:00:00",

    "totale": null,

    "fattura": null,

    "product": {

        "ProductEntity{id=4, nome='oneplus 6t', descrizione='smartphone', categoria='elettronica', prezzo=500.0, foto='', quantitaMagazzino=4, spedizione_veloce=0}": 2

    },

    "cliente": {

        "id": 3

    }

}

字段“product”有错误,我们写的格式不正确,就是这样的问题:


"status": 400,

"error": "Bad Request",

"message": "JSON parse error: For input string: \"ProductEntity{id=4, nome='oneplus 6t', descrizione='smartphone', category ='elettronica', prezzo=500.0, foto='', quantitaMagazzino=4, spedizione_veloce=0}\"; 嵌套异常是 com.fasterxml.jackson.databind.JsonMappingException



偶然的你
浏览 148回答 2
2回答

哔哔one

我认为您:在 ProductEntity中丢失了,这就是为什么它不能在映射中被解析为 obj 的原因。尝试让我知道它是否解决了问题,我还没有测试过。{&nbsp; &nbsp; "id": 10,&nbsp; &nbsp; "data": "2019-07-11 00:00:00",&nbsp; &nbsp; "totale": null,&nbsp; &nbsp; "fattura": null,&nbsp; &nbsp; "product": {&nbsp; &nbsp; &nbsp; &nbsp; "ProductEntity: {id=4, nome='oneplus 6t', descrizione='smartphone', categoria='elettronica', prezzo=500.0, foto='', quantitaMagazzino=4, spedizione_veloce=0}": 2&nbsp; &nbsp; },&nbsp; &nbsp; "cliente": {&nbsp; &nbsp; &nbsp; &nbsp; "id": 3&nbsp; &nbsp; }}

开满天机

确保您的 ProductEntity 使用 @JsonDeserialize 进行注释并使用此 JSON 并查看它是否有效&nbsp; {&nbsp; &nbsp; "id": 10,&nbsp; &nbsp; "data": "2019-07-11 00:00:00",&nbsp; &nbsp; "totale": null,&nbsp; &nbsp; "fattura": null,&nbsp; &nbsp; "product": {&nbsp; &nbsp; &nbsp; &nbsp; "{id=4, nome='oneplus 6t', descrizione='smartphone', categoria='elettronica', prezzo=500.0, foto='', quantitaMagazzino=4, spedizione_veloce=0}": 2&nbsp; &nbsp; &nbsp;},&nbsp; &nbsp; &nbsp;"cliente": {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;"id": 3&nbsp; &nbsp; &nbsp;}&nbsp;}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript