我如何将数据从Android游戏保存到本地json文件

时间:2020-08-05 10:15:01

标签: java android json database

我想将用户的数据保存在内部存储器的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;
}

2 个答案:

答案 0 :(得分:0)

您可以使用其他本地数据库,例如Room,Realm等。但是对于

Writing:  you need to convert your JSON into String or Model class and then you can store into Database. 
Reading  : convert string into JSON or Model Class and use the same.

多看看 https://realm.io/docs/java/latest/

Android中的领域数据库示例您可以选择以下选项:

写作

User user = realm.createObject(User.class); // Create a new object
user.setName("John");
user.setEmail("john@corporation.com");
realm.commitTransaction();

阅读

RealmQuery<User> query = realm.where(User.class);

// Add query conditions:
query.equalTo("name", "John");
query.or().equalTo("name", "Peter");

// Execute the query:
RealmResults<User> result1 = query.findAll();

// Or alternatively do the same all at once (the "Fluent interface"):
RealmResults<User> result2 = realm.where(User.class)
                              .equalTo("name", "John")
                              .or()
                              .equalTo("name", "Peter")
                              .findAll();

答案 1 :(得分:0)

我不是这方面的专家,但是我认为这是您应该做的事情:

首先将此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 =新的Gson(); 字符串json = gson.toJson(model);

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