【问题标题】:Save JSON file to internal memory将 JSON 文件保存到内存
【发布时间】:2017-08-17 20:12:15
【问题描述】:

大家好,我现在正在学习 JSON。所以一开始我想学习如何创建一个。所以我写了这段代码...

public void writeJsonFile() {
    username = usernameField.getText().toString();
    password = passwordField.getText().toString();
    JSONObject jsonObject = new JSONObject();
    try{
        jsonObject.put("username", username);
        jsonObject.put("password", password);
    }
    catch (JSONException e) {
        e.printStackTrace();
    }
}

但是我有一个问题...如何将 JSON 文件保存到 appfolder 的内部存储器中?再次调用和读取该文件的代码是什么?

【问题讨论】:

  • 查看此链接,它描述了如何在答案中保存文件stackoverflow.com/questions/34681158/write-json-to-a-file>

标签: android json


【解决方案1】:

您可以拨打jsonObject.toString,然后拨打save and read like in the answer to this question。从磁盘读取字符串后,您需要调用

JSONObject jsonObject = new JSONObject(yourString);

将其解析回JsonObject。

还有像 Gson 这样的工具可以帮助您对 json 序列化进行反对,从而避免一些此类工作。

【讨论】:

  • 但是当我使用代码读取文件时,我会得到这样的结果:“[B@9cd886”
  • 嗯,看起来像一个对象而不是字符串内容
【解决方案2】:

保存 JSON 本身并不是一个好的选择。你可以做的是:

  1. 将 JSON 文件转换为字符串并使用 SharedPrefferences 保存字符串,当您从 SharedPreferences 中获取它时,将其转换回 JSON。
  2. 使用数据库 (Realm),将您的 JSON 映射到模型并将该模型保存在数据库中。
  3. 对于用户名/密码的情况,我不会这样做。但我会使用 SharedPreferences 并使用不同的键独立存储两者的值。

不要忘记在 SharedPreferences 中encrypt sensitive data。

如果您真的想将信息保存在文件中,请查看this answer。

【讨论】:

  • 好的,将用户名和密码保存在 txt 中是不是一种不好的方法。在记忆中?
  • 嗯,它没有保存在内存中。它保存在内部存储器中。不,将其保存为纯文本不是一个好主意。您应该加密信息。用链接编辑了主要答案。
猜你喜欢
  • 2012-03-16
  • 1970-01-01
  • 1970-01-01
  • 2019-01-08
  • 2015-03-29
  • 2023-03-10
  • 2020-07-17
  • 2022-01-16
  • 1970-01-01
相关资源
最近更新 更多