RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 841295
Accepted
Turalllb
Turalllb
Asked:2020-06-13 05:33:05 +0000 UTC2020-06-13 05:33:05 +0000 UTC 2020-06-13 05:33:05 +0000 UTC

在 Sqlite 中存储从 json 获得的对象数组

  • 772

json类型 "rates":{"AAA":5.023852,"BBB":77.682521}

一开始我都是手动做的,然后我AsyncTask得到json了,把它解析到我的课堂上

class ModelData {

    private String name;
    private Double value;

    ModelData(String name, Double value) {
        this.name = name;
        this.value = value;
    }
}

sqLite并将响应本身缓存在数据库中json。毕竟List<ModelDate>,我不能用 sqLite 写。这是另一个子问题:我是否理解正确,为了在 sqLite 中保存对象,我们创建一个重复该对象的 json,并将其作为字符串悄悄地保存在数据库中。并且ORMLite经常听到,但现在我认为需要将对象存储在数据库中。不知道她是怎么做到的,也许她也自动创建json并存储)

然后我决定实现retrofit 2(它必须最终实现),这自然是失去了一些灵活性,这就是问题所在:我的答案被解析了

@SerializedName("rates")
@Expose
private List<ModelData> ratesList;

但是我怎样才能ratesList将它保存在sqLite. 我知道我可以以某种方式将此工作表转换并保存回 Json,但是从数据库中读取时,我将不得不再次解析,而这仍然是一个解析器代码,尽管已经存在一个。

这就是我想要的:在 POJO 模型中,分别解析字段和原始 json 本身(需要什么注释来获取整个 json?或者需要什么)并且还能够解析从数据库接收到的 json 相同POJO 模型类。

我认为这不是一个糟糕的例子,说明 retrofit 2两者都sqLite被剥夺了灵活性,结果证明对于一个小项目来说是多余的,只有当项目增长时,我才会从它们中受益。

UPD1我意识到 您可以将其余 api 的接口配置为接受原始 json,例如:

@GET("{date}")
Call<JsonObject> getData(@Path("date") String date, @Query("access_key") String accessKey, @Query("base") String  base);

但是我以后如何使用这个 JsonObject 的 POJO 模型来解析它,并将 Gson 转换器添加到改造中。这正是我在这个库中不明白的地方,解析中一般涉及到什么地方和什么方法。在什么时候连接转换器,可能已经在 okhttp3 级别的某个地方......总的来说,我厌倦了挖掘这个库

android
  • 1 1 个回答
  • 10 Views

1 个回答

  • Voted
  1. Best Answer
    woesss
    2020-06-13T12:25:53Z2020-06-13T12:25:53Z

    您有一些来自注释的异国愿望清单。为了方便在json中表示对象,我这样重新定义了toString:

        @Override
        public String toString() {
            return new Gson().toJson(this);
        }
    

    当然,您SQLite可以将一个序列化的对象塞入其中,但写下它的字段不是更好吗 - 每个字段都在自己的列中。一样ORMLite,也一样,只是没有你的参与。这将可以通过具有排序和其他SQL魅力的字段值进行选择。虽然SQLite你有自己的,json-API但当一切都到位时,工作仍然更方便。

    UPD

    Retrofit为此目的,它的创建是为了让用户不会脑洞大开,而只是在他的界面中指出模型的类型,并从Response. 如果你需要干预这个过程,并以某种特殊的方式将 json 解析到模型中——阅读文档、文章、示例Gson——他可以做很多事情。https://github.com/google/gson/blob/master/UserGuide.md

    • 2

相关问题

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    是否可以在 C++ 中继承类 <---> 结构?

    • 2 个回答
  • Marko Smith

    这种神经网络架构适合文本分类吗?

    • 1 个回答
  • Marko Smith

    为什么分配的工作方式不同?

    • 3 个回答
  • Marko Smith

    控制台中的光标坐标

    • 1 个回答
  • Marko Smith

    如何在 C++ 中删除类的实例?

    • 4 个回答
  • Marko Smith

    点是否属于线段的问题

    • 2 个回答
  • Marko Smith

    json结构错误

    • 1 个回答
  • Marko Smith

    ServiceWorker 中的“获取”事件

    • 1 个回答
  • Marko Smith

    c ++控制台应用程序exe文件[重复]

    • 1 个回答
  • Marko Smith

    按多列从sql表中选择

    • 1 个回答
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Suvitruf - Andrei Apanasik 什么是空? 2020-08-21 01:48:09 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5