我正在尝试在Kotlin中使用Jackson的JsonDeserialize,但是在设置数据类时遇到了问题。向控制器提出请求时,出现以下错误。
JSON解析错误:JSON属性identificationNumber的[简单类型,类co.com.bancodebogota.customer.accounts.entities.Customer]值的实例化失败,原因是创建者参数IdentificationNumber的值(因此为NULL)丢失(因此为NULL) -可空类型
我的数据类如下->
New-AzureRmResourceGroupDeployment `
-Name LocalTestDeployment `
-ResourceGroupName xxx-${env}-${location} `
-Mode Incremental `
-TemplateFile ..\webapp\azuredeploy.json `
-TemplateParameterFile ..\webapp\azuredeploy.parameters-dev.json `
-azureEnvironment ${env} `
-locationKey ${location}
如果我删除JsonProperty并没有任何作用
有人在kotlin中使用过吗?我想念什么吗?
这是应用程序类
az group deployment create `
--name LocalTestDeployment `
--resource-group xxx-${env}-${location} `
--mode Incremental `
--template-file ..\webapp\azuredeploy.json `
--parameters `@..\webapp\azuredeploy.parameters-dev.json `
-azureEnvironment ${env} `
-locationKey ${location}
和控制器:
data class BalanceByAccountRq @JsonCreator constructor(
@JsonProperty("customer") var customer: Customer,
@JsonProperty("account") var account: Account,
@JsonProperty("ipAddress") var ipAddress: String,
@JsonProperty("bankId") var bankId: String)
data class Customer @JsonCreator constructor(
@JsonProperty("identificationNumber") @JsonDeserialize(using = AsymmetricDeserializerString::class) var identificationNumber: String,
@JsonProperty("identificationType") var identificationType: String)
data class Account @JsonCreator constructor(
@JsonProperty("accountId") var accountId: String,
@JsonProperty("accountType") var accountType: String)
编辑:
有效载荷:
@SpringBootApplication
@EnableAutoConfiguration
@ComponentScan(basePackages = arrayOf("co.com.adl", "co.com.bancodebogota"))
@EnableConfigurationProperties
class PbBbogAvalProductBalanceDetailApplication
fun main(args: Array<String>) {
SpringApplication.run(PbBbogAvalProductBalanceDetailApplication::class.java, *args)
}
@Bean
@Throws(NoSuchAlgorithmException::class, NoSuchPaddingException::class)
fun asymmetricCryptography(): AsymmetricCryptography {
return AsymmetricCryptography();
}
在开发配置文件中不会解密,因此该有效负载中的参数未加密。在Java8微服务中可以正常工作