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

使用POJO对象列表有什么更好的方法

步兴为
2023-03-14

我有一个结构如下的JSON:

 {
  "bag" : {
    "descrition" : "my bag 1",
    "text" : 123456,
    "item" : {
      "-K5D9mi--s6jPWNwrNEu" : {
        "name" : "name item",
        "value" : 60
      },
      "-K5R3ugcTVFnNlAEAHus" : {
        "name" : "name item 2",
        "value" : 55
      }}}
 }
    public class Item {
        String name;
        int value;
   }
   public class Bag {
      String descrition;
      String text;
      List<Item> item;
    }

当我用下面的代码反序列化对象时,引用对象列表“item”给出了错误:“JSONMappingException:Can not反序列化java.util.ArrayList实例out of START_OBJECT token”

 Firebase ref = new Firebase("myAdressFirebase/bag/");
        ref.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                Bag bag = dataSnapshot.getValue(Bag.class);
            }
            @Override
            public void onCancelled(FirebaseError firebaseError) {
            }
        });

对于我来说,在一次调用中重新获得父对象Firebase和它们的子对象,对json来说,最好的POJO是什么?

共有1个答案

邹禄
2023-03-14

不能序列化项列表中的对象/哈希映射结构。没有键的位置,例如“-k5d9mi--s6jpwnwrneu”“-k5r3ugctvfnnlaeahus”;-)。

我已经很久没有使用Jackson了,但是我很确定您可以使用map 作为类bagitem-attribute的类型。也就是说,我希望Jackson提供一个从JSON对象到Java Map<>接口的转换器,反之亦然。

 类似资料:
  • 假设我有一个用户模式/模型,用户有一个朋友列表。Mongoose希望您将好友列表(外键/ObjectID类型)存储为数组,对吗?这意味着如果我想通过ID找到我的朋友,Mongoose将搜索数组,直到找到具有我想要的ID的朋友的第一个实例。那似乎真的是时间低效,不是吗?有更好的办法吗?

  • 我必须编写一些代码,将Java8流的内容多次添加到列表中,我很难找到最好的方法。根据我在SO上读到的内容(主要是这个问题:如何将Java8流的元素添加到现有列表中)和其他地方,我将其缩小到以下选项: PS:在我的示例代码中,我使用作为需要在流上执行的任何操作的占位符

  • 在已经是列表的对象上使用ToList()方法: 它会创建一个新列表吗? 以性能方式:其复杂性仍将为O(n)或更低(因为它已经是一个列表)?

  • 问题内容: 假设我们在集合中有一些项目,并且我们想使用某些比较器对它们进行排序,并期望结果在列表中: 一种方法是对列表中的项目进行排序,例如: Anothe方法正在使用排序流: 我想知道哪种方法更有效?排序流是否有任何优势(例如在多核上进行Faste排序)? 在运行时复杂性方面/最快方面是高效的。 我不相信自己要实现一个完美的基准,学习并不能真正启发我。 问题答案: 可以肯定地说,两种形式的排序都

  • 我正在开发一个Spring启动应用程序,我有以下疑问。 我有一个服务方法(工作正常),它将一个对象插入数据库,调用存储库: 如您所见,save()methjod返回插入的Coin对象(即映射我的表的Hibernate实体类)。服务方法将此Coin对象转换为CoinDTO对象,以便返回DTO对象而不是实体实例。它工作正常,这是预期的行为。 现在我创建了第二个服务方法,它只是检索所有Coin对象的列表

  • 使用C#对象初始化器有什么好处吗? 在C语言中,没有引用,所有内容都封装在一个对象中,因此在创建对象后使用它们而不是初始化成员是有意义的。 在C#中使用它们的情况是什么? 如何:使用对象初始值设定项初始化对象(C#编程指南)