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

Jackson JSON映射Facebook数据

辛锦
2023-03-14

来自Facebook的JSON数据示例

{
    "1111111" : {
         "home" : false,
         "activities" : "some value"
    },

    "2222222" : {
         "home" : false,
         "activities" : "some value again"
    }
}


public class Profile{
    private boolean home;
    private String activities;

    // generated setter getter

    public static void main(String[] args) throws JsonParseException, JsonMappingException, IOException {
        ObjectMapper mapper = new ObjectMapper();
        Profile mainProfile = mapper.readValue(new File("data.json"), Profile.class);

        System.out.println(mainProfile.getActivities().size());
    }
}



运行上述文件将产生此错误。

Unrecognized field "1111111" (Class com.analysis.structure.Profile), not marked as ignorable


我面临的问题是,如何将“1111111”值映射到类中的变量?如果我使用@JsonIgnoreProperties(ignoreUnknown=true),它将完全忽略所有的josn数据,因为第一个数据没有任何要映射的标记。我应该如何使用Jackson json将这种类型的json数据映射到Java?

共有1个答案

景俊语
2023-03-14

这并不能清晰地映射到POJO,所以您可能更应该将其绑定到一个映射,其中键的类型是字符串,并为某个POJO类型赋值?

 类似资料:
  • 问题 你有一个对象数组,想把这些对象映射到另一个数组中,就像 Ruby 的映射一样。 解决方案 使用 map() 和匿名函数,但不要忘了还有列表推导。 electric_mayhem = [ { name: "Doctor Teeth", instrument: "piano" }, { name: "Janice", instrument: "lead g

  • 我正在使用Hibernate和JPA注释来映射我的类。当hibernate尝试映射这个类时,我遇到了一个问题 我的Social alStat类是: 我得到了这个错误: 我猜发生这种情况是因为我试图映射到一个基本类,但@ElementCollection注释不应该解决这个问题吗? 我的item类如下所示:

  • 前端将这个json发送到我的API 控制器:

  • 注意 当前章节中涉及的配置一般适用于关系数据库。这里展示的扩展方法在你安装了关系数据库提供程序之后就能获得(由Microsoft.EntityFrmeworkCore.Relational 程序包共享)。 列映射用于标识应该从数据库查询或写入哪些列数据。 惯例 按照惯例,实体类型属性会被设置为映射到与该属性同名的数据列上。 数据注解 可以使用数据注解来配置实体类型属性所映射的数据列。 public

  • 注意 当前章节中涉及的配置一般适用于关系数据库。这里展示的扩展方法在你安装了关系数据库提供程序之后就能获得(由Microsoft.EntityFrmeworkCore.Relational 程序包共享)。 表映射用于标识应该从数据库查询或写入哪些表数据。 惯例 按照惯例,一旦在派生的上下文中通过 DbSet<TEntity> 属性暴露了实体,该实体就会被设置为映射到与该属性同名的数据表上。如果给定

  • 许多 Hibernate 映射元素具有 node 属性。这使你可以指定用来保存 属性或实体数据的 XML 属性或元素。node 属性必须是下列格式之一: "element-name":映射为指定的 XML 元素 "@attribute-name":映射为指定的 XML 属性 ".":映射为父元素 "element-name/@attribute-name":映射为指定元素的指定属性 对于集合和单值