Java 如何将android游戏中的数据保存到本地json文件
我想将用户的数据保存在json文件中的internel内存中,但不起作用。有什么问题吗????这是代码Java 如何将android游戏中的数据保存到本地json文件,java,android,json,database,Java,Android,Json,Database,我想将用户的数据保存在json文件中的internel内存中,但不起作用。有什么问题吗????这是代码 public JSONObject addToJson(Context context, String email,String password)throws Exception{ String id_P = UUID.randomUUID().toString(); JSONObject jsonObject = new JSONObject(); jsonObj
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;
}
您可以使用不同的本地数据库,如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.
多看看
Android中的Realm数据库示例您可以选择以下选项:
书写
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();
RealmQuery query=realm.where(User.class);
//添加查询条件:
query.equalTo(“姓名”、“约翰”);
query.or().equalTo(“name”、“Peter”);
//执行查询:
RealmResults result1=query.findAll();
//或者一次完成相同的操作(“流畅界面”):
RealmResults result2=realm.where(User.class)
.equalTo(“姓名”、“约翰”)
.或()
.equalTo(“姓名”、“彼得”)
.findAll();
我不是这方面的专家,但我认为您应该做以下几点:
首先将此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;
}
}
类模型{
地图用户数据;
公共模型(映射setUserdata){
this.setUserdata=setUserdata;
}
公共void setSetUserdata(映射setUserdata){
this.setUserdata=setUserdata;
}
}
好的,然后对于设置数据,您应该创建一个映射,然后初始化该类,并将映射传递给它,如下所示:
Map<String ,String> userData=new HashMap<>();
setUserdata.put("username","something");
setUserdata.put("password","something");
Model model=new Model(userData);
Map userData=newhashmap();
setUserdata.put(“用户名”、“某物”);
setUserdata.put(“密码”、“某物”);
模型=新模型(用户数据);
现在您可以轻松地将其转换为JSON:
Gson Gson=新的Gson();
字符串json=gson.toJson(model)
您可以轻松地将其以文本格式保存在文件中。我更愿意使用另一种选项来存储用户数据,但在Android中,您可以使用内部存储。请检查我使用了这个代码,但它不工作有什么问题???