JsonDeserialize在Kotlin中根据请求抛出JSON解析错误

时间:2019-02-19 14:39:33

标签: java json kotlin jackson

我正在尝试在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微服务中可以正常工作

0 个答案:

没有答案