首页 > 解决方案 > 我如何将数据从 android 游戏保存到本地 json 文件

问题描述

我想将用户的数据保存在内部内存中的 json 文件中,但它不起作用有什么问题????这是代码.......................... ..................................................... .....................

public JSONObject addToJson(Context context, String email,String password)throws Exception{
    String id_P = UUID.randomUUID().toString();
    JSONObject jsonObject = new JSONObject();

    jsonObject.put("id_P",id_P);
    jsonObject.put("Email",email);
    jsonObject.put("password",password);

    
    String j = jsonObject.toString();
    System.out.println(j);
    File file = new File(context.getFilesDir(),"dbApp.json");
    FileWriter fileWriter = new FileWriter(file);
    BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
    bufferedWriter.write(j);
    bufferedWriter.close();

    return jsonObject;
}

标签: javaandroidjsondatabase

解决方案


好吧,我不是这方面的专家,但我认为您应该这样做:

首先将此 JSON 转换器库添加到您的 build.gradle:

implementation 'com.google.code.gson:gson:2.8.6'

之后,您需要创建一个模型类,您应该在其中对不同地图中的数据进行分类,注意:始终使用地图数组列表将无法正常工作:

Class Model{
Map<String ,String> userData;

 public Model(Map<String, String> setUserdata) {
    this.setUserdata = setUserdata;
}


         public void setSetUserdata(Map<String, String> setUserdata) {
          this.setUserdata = setUserdata;
          }


}  

好的,然后为了设置数据,您应该创建一个 Map,然后初始化该类并将类似于以下的 Map 传递给它:

Map<String ,String> userData=new HashMap<>();
        setUserdata.put("username","something");
        setUserdata.put("password","something");
Model model=new Model(userData);

现在您可以轻松地将其转换为 JSON : Gson gson = new Gson(); 字符串 json = gson.toJson(model);

您可以轻松地将其保存在文本格式的文件中。


推荐阅读