代码之家  ›  专栏  ›  技术社区  ›  ozo

将自定义对象添加到tinyDB

  •  1
  • ozo  · 技术社区  · 7 年前

    tinydb.putListObject(String,java.util.ArrayList<java.lang.Object>) 想要一个对象,但我想存储餐厅对象。我如何解决它?

    ArrayList<Restaurant> restaurants = new ArrayList<>();
    
    // This part gives error.
    tinydb.putListObject("restaurantsObject",restaurants);
    

    之后,我需要将其转换为不同类中的restaurant对象。

    ArrayList<Restaurant> restaurants = new ArrayList<>();
    
    restaurants = tinydb.getListObject("restaurantsObject", Restaurant.class);
    

    此外,如果您知道我的结构的简单缓存方法,可以与我分享。提前谢谢。

    1 回复  |  直到 7 年前
        1
  •  0
  •   ozo    7 年前

    我用gson存储它。

     Gson gson = new Gson();
     ArrayList<String> gsonString = new ArrayList<>();
     for(int i=0; i<restaurants.size(); i++)
          gsonString.add(gson.toJson(restaurants.get(i)));
     tinydb.putListString("tinyRestaurant",gsonString);
    

    转换它

     Gson gson = new Gson();
     for(int i=0; i<tinydb.getListString("tinyRestaurant").size(); i++)
                restaurants.add(gson.fromJson(tinydb.getListString("tinyRestaurant").get(i), Restaurant.class));