1

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

例如:根据 Swagger Schema,我们期望字段的“<strong>String”值,但 XML 到 JSON 解析器给我们的“<strong>Integer”与 Swagger/Schema 文档不匹配。

在 Swagger/Json Schema 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。根据上述场景,我期待一个字符串值,它应该查看架构并制作字段的数据类型。注意:也不想将所有内容都转换为字符串。

提前致谢!!!

4

0 回答 0