我在json文档中使用以下格式的uri
https://xyz.com/index.php?SCR=visa&restaurant_id=2322&location={LOCATIONID}&customer={CUSTOMERID}&tab={TABID}&
我正在使用rapidxml Jackson ObjectMapper将此url反序列化为java.net.URI(json规范格式=“uri”)
但我得到以下异常
java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.InvalidFormatException: Can not construct instance of java.net.URI from String value 'https://eat24hours.com/index.php?SCR=m_paypal&restaurant_id=21696&location={LOCATIONID}&customer={CUSTOMERID}&tab={TABID}&': not a valid textual representation a
是否有可以处理此类参数化网址的反序列化功能或模块
答案 0 :(得分:1)
这是来自URI类本身。杰克逊对此无能为力。您需要使用String
代替URI
。
答案 1 :(得分:1)
杰克逊可以将URI
反序列化,但您的URI无效。
https://xyz.com/index.php?SCR=visa&restaurant_id=2322&location={LOCATIONID}&customer={CUSTOMERID}&tab={TABID}&
^ ^ invalid characters
这似乎是您尚未替换{...}
占位符的URI的模板。将您的字段更改为String
,编写您自己的反序列化程序,填充这些点,或使其成为有效的URI。