是否可以根据Json模式自定义Json元素的数据类型?

时间:2019-10-17 09:49:30

标签: java json xml stax xml-to-json

通过StAXON解析器将XML转换为JSON,Json Schema(预期)与实际的Response JSON之间存在数据类型不匹配

例如: 根据Swagger Schema,我们期望字段的值为“ String ”,但是XML to JSON解析器提供的“ Integer ”与Swagger / Schema文档不匹配。

在Swagger / Json架构中,accountId类型称为字符串。

"accountId" : {
            "type" : "string",
            "description" : "The Id of the account",
            "readOnly" : true
          }

accountId的XML元素值为:< accountId>123</ accountId> 将XML转换为JSON之后,accountId为:**123** 但是根据架构,我们的期望是accountId:**“123”**

XML到JSON的通用解析逻辑:

  1. 如果元素只有数字,但以零开头:<accountId>0123</accountId>,则Json输出为:String { accountId : “0123” }
  2. 如果元素只有数字,但没有以零开头:<accountId>123</accountId>,那么Json输出为:Integer { accountId : 123 }
  3. 如果元素包含字符:<accountName>Abc</ accountName>,则Json输出为:String { accountName : “Abc”)

它将根据数据转换Json,而不转换任何模式,显然我在解析Staxon解析器时没有提供任何模式。

有什么方法可以更改应该与期望的Json模式匹配的JSON。 根据上述情况,我期望一个String值,它应该查看架构并创建字段的数据类型。 注意:也不想全部转换为String。

提前谢谢!

0 个答案:

没有答案