- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Kotlin 数据类将 Feign 连接到 POST。
我正在调用的 API 需要 {..."brandInfo":{"TPID":1}...}
我的理解是,如果 jackson-module-kotlin 依赖项没有被正确拾取,Feign 将根本无法 POST,因为 Jackson 编码会彻底失败。
但是,Feign 能够 POST,而 Jackson 能够编码,但是无论我做什么,发布的内容都是 {..."brandInfo":{"tpid":1}...},尽管 BrandInfo val被@JsonProperty("TPID") 注释。
我错过了什么?
@JsonIgnoreProperties(ignoreUnknown = true)
data class KBrandInfo (
@JsonProperty("TPID") //not honored
val TPID: Long
)
interface KConversationServiceClient {
@RequestLine("POST v2/conversations")
@Headers("Content-Type: application/json")
fun createConversation(createConversation: KCreateConversation): String
}
@Provides
public KConversationServiceClient getKConversationServiceClient(
@Named("conversationServiceUrl") String baseUri,
Feign.Builder builder) {
return builder
.logLevel(Logger.Level.FULL)
.decoder(new StringDecoder())
.encoder(new JacksonEncoder(jacksonObjectMapper())) //does this need some extra configuration in order to pick up @JsonProperty annotations?
.requestInterceptor(requestTemplate ->
requestTemplate
.header("requestId", UUID.randomUUID().toString())
.target(KConversationServiceClient.class, baseUri);
}
<properties>
...
<feign.version>9.3.1</feign.version>
<kotlin.version>1.1.51</kotlin.version>
...
</properties>
<dependency>
<groupId>io.github.openfeign</groupId>
<artifactId>feign-core</artifactId>
<version>${feign.version}</version>
</dependency>
<dependency>
<groupId>io.github.openfeign</groupId>
<artifactId>feign-hystrix</artifactId>
<version>${feign.version}</version>
</dependency>
<dependency>
<groupId>io.github.openfeign</groupId>
<artifactId>feign-slf4j</artifactId>
<version>${feign.version}</version>
</dependency>
<dependency>
<groupId>io.github.openfeign</groupId>
<artifactId>feign-jackson</artifactId>
<version>${feign.version}</version>
</dependency>
<dependency>
<groupId>io.github.openfeign</groupId>
<artifactId>feign-gson</artifactId>
<version>${feign.version}</version>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib-jre8</artifactId>
<version>${kotlin.version}</version>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-test-junit</artifactId>
<version>${kotlin.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-reflect</artifactId>
<version>${kotlin.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.module</groupId>
<artifactId>jackson-module-kotlin</artifactId>
<version>2.7.9</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>${fasterxml.jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>${fasterxml.jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${fasterxml.jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-joda</artifactId>
<version>${fasterxml.jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-yaml</artifactId>
<version>${fasterxml.jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.module</groupId>
<artifactId>jackson-module-parameter-names</artifactId>
<version>${fasterxml.jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jdk8</artifactId>
<version>${fasterxml.jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
<version>${fasterxml.jackson.version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<!--Kotlin + Java + Maven implies some funky temporal dependencies and handling of annotation processing when building-->
<!--* https://kotlinlang.org/docs/reference/using-maven.html-->
<!--* https://kotlinlang.org/docs/reference/kapt.html-->
<!--* https://github.com/JetBrains/kotlin-examples/blob/master/maven/dagger-maven-example/pom.xml-->
<plugin>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-maven-plugin</artifactId>
<version>${kotlin.version}</version>
<executions>
<execution>
<id>compile</id>
<phase>compile</phase>
<goals>
<goal>compile</goal>
</goals>
<configuration>
<sourceDirs>
<source>src/main/kotlin</source>
<source>src/main/java</source>
<source>target/generated-sources/annotations</source>
</sourceDirs>
</configuration>
</execution>
<execution>
<id>test-compile</id>
<phase>test-compile</phase>
<goals>
<goal>test-compile</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
...
最佳答案
对我有帮助的是指定注释应该应用于getter:@get:JsonProperty("TPID")
关于jackson - Kotlin 数据类 Jackson @JsonProperty 不受欢迎,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47148778/
我有一个 pojo,大多数时候我不想将字段写入 Json,但对于特定的条件,我想将这个值写入 json。例如我的模型是; public class Person { @JsonProperty
虽然类 DataType 的序列化会忽略 dbOptions,但会打印 dataType 及其值。 请注意,我只需要在序列化期间而不是反序列化期间忽略这些属性。 @JsonTypeInfo(use =
这个问题已经有答案了: Jackson enum Serializing and DeSerializer (19 个回答) 已关闭 4 年前。 我有一个简单的枚举,它具有 OK 和 FAULT 属性
我想要生成以下 JSON 输出。 **JSON Output:** { "ingredients": { "main": ["flour", "water", "egg"], "o
已关闭。这个问题是 not reproducible or was caused by typos 。目前不接受答案。 这个问题是由拼写错误或无法再重现的问题引起的。虽然类似的问题可能是 on-top
我有以下 POJO(在构造函数等内): public class GlobalData implements Serializable { //constructors getters and s
我有一个要发送的 JSON 示例: {"lat":41.562592,"long":-8.430022}' 我需要引用第二个属性,如下所示: @JsonProperty('long') private
在 Google App Engine NDB 中,有一个属性类型 JsonProperty,它采用 Python list 或字典并自动序列化它。 我的模型的结构取决于这个问题的答案,所以我想知道对
是否有详细说明 JsonProperty 命名约定的文档?就像我声明 @JsonProperty("id") 什么可以和不能放在括号内一样? 最佳答案 任何东西。 JSON 生成器本身会转义奇怪或错误
简而言之,我正在尝试为我编写的休息服务编写一个带有休息保证的集成测试。我的问题是,当服务器尝试反序列化 JSON 时,我收到错误,字段“元数据”未标记为可忽略。我必须处理这个字段,这也意味着(据我所知
是否可以动态设置或在调用时设置所需的@JsonProperty? 这背后的原因...我正在生成描述架构并定义的 json 文件 新项目的必填字段是什么 项目更新需要哪些字段。 因此,创建只需要 foo
@JsonProperty 名称中允许有空格吗?即 @JsonProperty("Jon Snow") private String jonSnow = "Lord"; // getter & set
@Data public class Tests { @JsonProperty("comment") private String notes; } 我知道如何使用@JsonProp
我正在开发一个使用 Jackson 注释的 Spring boot 应用程序。 我想从配置中读取 @JsonProperty 的值,而不是使用常量字符串。 JSON 输入示例 {"s":12} 代码
以下是从服务收到的 json 响应的摘录。 aggregations: { gender: { ...other data } } 服务每次都会返回相同的结构,但
当我使用 Spring RestTemplate 使用一个安静的网络服务时,我得到以下异常 com.fasterxml.jackson.databind.exc.UnrecognizedPropert
我正在尝试创建一个包含来自 Facebook 和 Twitter 的信息的数据类。 但是在我来自 Twitter 的 JSON 回复中我需要 id_str 并且从 FaceBook 我得到 id。 我
如何使用@JsonProperty() 在另一个 json 对象中获取一个 json 对象?我要获取的示例json是: "location" : { "needs_recoding" : fals
jackson 的 @JsonProperty 是否有类级注释?在不知道类中有哪些字段名称的情况下,我可以用注释对类进行注释,它会自动为我映射吗? 目前我必须用 JsonProperty 注释每个字段
我有两个返回此 Json 的端点: "type": { "nbrCurrentRemainingDays": 0, "desc": "put desc here !",
我是一名优秀的程序员,十分优秀!