【发布时间】:2020-03-11 05:29:04
【问题描述】:
我正在尝试将 json 字符串转换为我各自的 pojo 类。 json 字符串是 base64 令牌的解码版本。
解码后的值为
{"userId":"1234567890","userName": "John Doe", roles: ["admin","users"]}
我正在使用代码String jsonFormat=objectMapper.writeValueAsString(decoded);,其中解码是上面提到的字符串。
当我尝试使用 objectmapper 将其转换为对象时遇到错误
objectMapper.readValue(jsonFormat, PtsbUser.class);
错误:
com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot construct instance of `com.ptsb.rbaccomponent.models.PtsbUser` (although at least one Creator exists): no String-argument constructor/factory method to deserialize from String value ('{userId:"1234567890",userName: "John Doe", roles: ["admin","users"]}')
at [Source: (String)""{userId:\"1234567890\",userName: \"John Doe\", roles: [\"admin\",\"users\"]}\n \n \n ""; line: 1, column: 1]
我已经更新了解码后的字符串,也将括号放在键中。我正在使用https://www.base64encode.org/ 编码base64,它给了我令牌
eyJ1c2VySWQiOiIxMjM0NTY3ODkwIiwidXNlck5hbWUiOiAiSm9obiBEb2UiLCByb2xlczogWyJhZG1pbiIsInVzZXJzIl19CiAgICAgCiAgCiAgICA=
我正在使用下面的 util 代码来获取我的解码字符串:
Base64.getDecoder().decode(encoded);
String decripted=new String (decoded);
return decripted
【问题讨论】:
-
能否在您的问题中添加您的 PtsbUser.class?
-
另外,你最好分享你编码的 base64 令牌
-
@MOnkey 我更新了我的问题。如果您需要任何进一步的信息,请告诉我
标签: java json objectmapper