Как сохранить данные из игры android в локальный файл json - PullRequest
0 голосов
/ 05 августа 2020

Я хочу сохранить данные пользователя в файле 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 голосов
/ 05 августа 2020

ну, я не эксперт в этом вопросе, но я думаю, что вам следует сделать следующее:

сначала добавьте эту 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<String ,String> userData=new HashMap<>();
        setUserdata.put("username","something");
        setUserdata.put("password","something");
Model model=new Model(userData);

, и теперь вы можете легко преобразовать это в JSON: Gson gson = new Gson () ; String json = gson.to Json (модель);

, и вы можете легко сохранить это в файле в текстовом формате.

0 голосов
/ 05 августа 2020

Вы можете использовать различные локальные базы данных, такие как Room, Realm и т. Д. c. Но для

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/

Пример базы данных Realm в 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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...