我有一个包含json格式的HashMap客户列表的文件.
像这样:
{"Davide":{"name":"Davide","cf":"FRCDVD","pi":"1234",
"telephone":"333","website":"www","sector":"Student","address":"Rome"}}
Run Code Online (Sandbox Code Playgroud)
这只是列表的一个客户.每次调用控制器时,我都想从文件中获取数据并将它们转换为HashMap列表.
我尝试这样做:
HashMap<String, Customer> listCustomer = new HashMap<>();
listCustomer = new ObjectMapper().readValue(pathCustomerFile, HashMap.class); //This line gives me error
Run Code Online (Sandbox Code Playgroud)
我收到了这个错误:
org.codehaus.jackson.JsonParseException:意外字符('/'(代码47)):也许是(非标准)评论?(因为功能'ALLOW_COMMENTS'未启用解析器而未被识别为一个)
我怎样才能做到这一点?
Ste*_*eve 16
我最近遇到过这个问题.我试图将路径(以字符串的形式)传递给readValue.您需要将其传递给要解析的字符串或文件对象.基于您的变量名称我认为您可能已将其传递给文件的路径.
(基本上,它正在读取文件路径中的'/'并在它们上面抛出错误.
请仔细检查您输入的 JSON 字符串,确保它没有被错误地转义或/悬挂在某处。例如/\"name\"。然后提供正确的类型映射:
new ObjectMapper().readValue(pathCustomerFile, new TypeReference<HashMap<String, Customer>>(){});
Run Code Online (Sandbox Code Playgroud)
我的答案是用 jackson-mapper-asl 1.9.13 进行测试的。
** 你的映射HashMap.class不会给你想要的结果,因为 Jackson 会将你的 JSON 映射到Map<String, Map>. 当您尝试从 Map 获取值并像 Customer 类型一样进行操作时,您会发现。
| 归档时间: |
|
| 查看次数: |
8299 次 |
| 最近记录: |