当前位置: 首页 > 知识库问答 >
问题:

无法使用Map,ObjectMapper解析Json

郤立果
2023-03-14
{   
    "time":1352113682,
    "api_version":"1",
    "firstname":"abc",
    "lastname":"xyz",
    "company":"Cool Apps",
    "email":"abc@apps.com.au"
}
public class AuthenticateUser implements Serializable{

    // Response when Successfully Login
    public String time;
    public String api_version;
    public String firstname;
    public String lastname;
    public String company;
    public String email;

}
Map<String, AuthenticateUser> map=null;
ObjectMapper mapper=new ObjectMapper();
try{
    map=mapper.readValue(result,new TypeReference<Map<String, AuthenticateUser>>(){});
    Set<String> keys=map.keySet();
    for (String key : keys) {
    System.out.println(map.get(key).time);
    System.out.println(map.get(key).api_version);
        System.out.println(map.get(key).firstname);
    System.out.println(map.get(key).lastname);
    System.out.println(map.get(key).company);
    System.out.println(map.get(key).email);
    }
}catch (Exception e) {
    e.printStackTrace();
}

JSONMappingException:无法从JSON整数实例化类型[simple type,class AuthenticateUser]的值;在com.fasterxml.jackson.databind.deser.std.stdvalueinstantiator.createfromint(stdvalueinstantiator.java:316)在com.fasterxml.jackson.databind.deser.beandeserializer.deserializefromnumber(beandeserializer.java:427)在com.fasterxml.jackson.databind.deser.std.mapdeserializer.deserializer.deserialize(beandeserializer.119)在

共有1个答案

通宾白
2023-03-14

您在开头给出的示例是针对单个AuthenticateUser对象的。这是作为输入传递给这个程序的全部内容吗?这绝对不能正确解析。

单个AuthenticateUser不是类型(String,AuthenticateUser)的映射

我想也许你很困惑,你为什么要做地图?如果您只想解析单个对象,那么您只需要:

AuthenticateUser user =mapper.readValue(result, AuthenticateUser.class);

System.out.println(user.time);
 类似资料:
  • 问题内容: 我已经尝试了所有方法,但是解决方案非常丑陋,我真的想要一个直接的答案,是否可以改进(这意味着是否需要使用其他实现)。 问题在于带有GSON的Map of Maps: 根据Firebug给我以下回应: 大约有200个,但是只有两个。到目前为止,这是我在课堂上要解析的内容: 所以我这样访问数据: 但是正如您所看到的,这将是很长的时间。另一个问题是某些“值”中包含“&”号,这意味着我不能在此

  • 问题内容: 当jar中的依赖项中定义了另一个对象映射器时,如何使对象映射器工作? 我正在尝试将Swagger与在Jetty下运行的Jersey 2 一起使用。问题是,一旦我将Swagger JAX-RX jar添加到类路径中,就没有发现我的对象映射器,因此我失去了对象的自定义序列化。 这是我的对象映射器的定义方式 我已将问题发布给Swagger的维护者,您可以在其中阅读详细信息。 在Jersey的

  • 问题内容: 我有这个json数组: 我有这个类来保存数据: 我正在尝试将json转换为MapData对象的列表: 但是我得到这个错误: 我究竟做错了什么? 问题答案: 我怀疑方法调用返回错误的类型。它应该返回而不是。 就像是: 在这个要点中,我有一个很好的例子说明了您的问题

  • 我正在用Java/Spring创建简单的rest客户端。我的请求已被远程服务正确使用,我得到了以下响应字符串: 下面的代码是对象,我想从Json响应绑定值 我一直在获得“无法识别的字段访问\u令牌”,但当我添加

  • 我对Groovy还比较陌生,我正试着去了解Gradle。如果我导入组织。jvnet。哈德逊。通过Grapes插件,它可以完美地工作,并且解决了依赖关系。但是,如果我尝试使用Gradle检索依赖关系,则依赖关系不会得到解决。 包适用于Gradle和Grape。 未使用Gradle解决的依赖关系 使用Grape解决的依赖关系 使用Gradle解决的依赖项 Gradle构建过程中的错误 build.gr

  • 错误: 线程“main”java.time.format.dateTimeParseException:无法解析文本“Tue 21 May”:无法从TemporalAccessor获取LocalDate:{DayOfWeek=2,DayOfMonth=21,MonthOfYear=5},类型为java.time.format.dateTimeFormatter.createError(dateTi