配置 RestAssured 以使用 GSON 而不是 Jackson?
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));
嗯,作为Rest Assured documentation states,技术的顺序是:
- JSON 使用 Jackson 2(Faster Jackson(数据绑定))
- JSON 使用 Jackson(数据绑定)
- JSON 使用 Gson
- XML 使用 JAXB
此外还描述了 explicit serializer or deserializer 的使用。
序列化:
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);
在我的项目中,我通过包装原始 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))
我在使用 RestAssured 的项目中同时拥有 GSON 和 Jackson,我想使用 GSON。官方文档没有提供明确的示例。我尝试了几种配置,但它似乎不起作用。这是我的配置,我是否遗漏了什么?
RestAssured.config = RestAssuredConfig.config()
.decoderConfig(new DecoderConfig("UTF-8"))
.encoderConfig(new EncoderConfig("UTF-8", "UTF-8"))
.objectMapperConfig(new ObjectMapperConfig(GSON));
嗯,作为Rest Assured documentation states,技术的顺序是:
- JSON 使用 Jackson 2(Faster Jackson(数据绑定))
- JSON 使用 Jackson(数据绑定)
- JSON 使用 Gson
- XML 使用 JAXB
此外还描述了 explicit serializer or deserializer 的使用。
序列化:
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);
在我的项目中,我通过包装原始 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))