第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 Jackson 反序列化數(shù)組 JSON 時出錯

使用 Jackson 反序列化數(shù)組 JSON 時出錯

蕪湖不蕪 2022-05-20 18:38:25
希望有人可以提供幫助。Product我正在嘗試反序列化從 Prestashop 1.7 的 web 服務(wù)中獲取的類的 JSON 數(shù)組,使用和這樣的 url http://myshop.com/api/products/?display=full&filter[reference]=[0003]&output_format=JSON。JSON輸出是這樣的{"products": [{        "id": 1,        "id_manufacturer": "0",        "id_supplier": "0",        "id_category_default": "2",        "new": null,        "cache_default_attribute": "0",        "id_default_image": "",        "id_default_combination": 0,        "id_tax_rules_group": "3",        "position_in_category": "0",        "manufacturer_name": false,        "quantity": "0"    },    {        "id": 2,        "id_manufacturer": "0",        "id_supplier": "0",        "id_category_default": "2",        "new": null,        "cache_default_attribute": "0",        "id_default_image": "",        "id_default_combination": 0,        "id_tax_rules_group": "3",        "position_in_category": "0",        "manufacturer_name": false,        "quantity": "0"    }]}該類Products只是List類Product定義中的一個,如下所示:public class Products  {    private List <Product> products;    public Products() {        super();    }    public List<Product> getProducts(){        return this.products;    }    public void setProducts(List<Product> products){        this.products = products;    }}
查看完整描述

2 回答

?
嚕嚕噠

TA貢獻1784條經(jīng)驗 獲得超7個贊

如果您的輸入 JSON 有額外的字段,您可以使用以下任何一種方法來允許反序列化:

  1. 您可以將整個 ObjectMapper 配置為不會在額外字段上失?。?/p>

    ObjectMapper mapper = new ObjectMapper() .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);

    Products products = mapper.readValue(url, Products.class);
  2. 使用 @JsonIgnoreProperties(ignoreUnknown = true) 注釋您的 Product 類


查看完整回答
反對 回復(fù) 2022-05-20
?
千萬里不及你

TA貢獻1784條經(jīng)驗 獲得超9個贊

我想你可能明白這一點,但在基本層面上,你做錯了。


類中的字段名稱必須與 JSON 中的字段名稱完全匹配,或者您必須使用@JsonProperty注解來識別 JSON 中的確切字段名稱。下面是一個示例,展示了如何將newJSON 中的字段映射到您的對象:


public class Product

{

  @JsonProperty("new")

  private String _new;

}

請注意,@JsonProperty注釋中的名稱與 JSON 中的字段名稱完全匹配。只要這成立,JAVA 字段的實際名稱就無關(guān)緊要。這也適用于“新”領(lǐng)域:


public class Product

{

  @JsonProperty("new")

  private String thisFieldNameDoesNotMatter;

}

編輯:添加了其他詳細信息以反映對問題的編輯。


您的問題的答案是:注意。


實際閱讀杰克遜給你的錯誤:


com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: 

Unrecognized field "delivery_in_stock"

... additional details included by Jackson, but deleted here.

Jackson 錯誤消息標(biāo)識 JSON 中有一個名為“delivery_in_stock”的無法識別的字段。


添加一個字段以包含來自 JSON 的“delivery_in_stock”字段值,或者使用此注釋指示 Jackson 忽略未映射的屬性:


@JsonIgnoreProperties(ignoreUnknown = true)


查看完整回答
反對 回復(fù) 2022-05-20
  • 2 回答
  • 0 關(guān)注
  • 217 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號