簡體   English   中英

配置 RestAssured 以在 Jackson 上使用 GSON?

[英]Configure RestAssured to use GSON over Jackson?

我在一個使用 RestAssured 的項目中同時擁有 GSON 和 Jackson,我想使用 GSON。 官方文檔沒有提供明確的例子。 我嘗試了幾個配置,但似乎不起作用。 這是我的配置,我錯過了什么嗎?

RestAssured.config = RestAssuredConfig.config()
                .decoderConfig(new DecoderConfig("UTF-8"))
                .encoderConfig(new EncoderConfig("UTF-8", "UTF-8"))
                .objectMapperConfig(new ObjectMapperConfig(GSON));

在我的項目中,我通過包裝原始的RestAssured.given方法解決了這個問題

public static RequestSpecification given() {
    return RestAssured.given()
        .config(RestAssured.config()
            .objectMapperConfig(new ObjectMapperConfig(ObjectMapperType.GSON)));
}

這在 Kotlin 中對我有用:

RestAssured.config = RestAssuredConfig.config().objectMapperConfig(objectMapperConfig().defaultObjectMapperType(ObjectMapperType.GSON))

好吧,正如Rest Assured 文檔所述,技術順序是:

  1. JSON 使用 Jackson 2 (Faster Jackson (databind))
  2. JSON 使用 Jackson(數據綁定)
  3. 使用 Gson 的 JSON
  4. 使用 JAXB 的 XML

此外,還描述了顯式串行解串器的使用。

序列化:

Message message = new Message();
message.setMessage("My messagee");
given().
   body(message, ObjectMapperType.GSON).
when().
  post("/message");

反序列化:

Message message = get("/message").as(Message.class, ObjectMapperType.GSON);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM