java - 我如何将数据从 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;
}
解决方案
好吧,我不是这方面的专家,但我认为您应该这样做:
首先将此 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);
您可以轻松地将其保存在文本格式的文件中。
推荐阅读
- javascript - 如何在浏览器上创建链接以下载服务器文件?
- java - JPA选择日期低于参数的实体
- python - pandas.read_csv() 在 for 循环中。为什么我的代码不能工作超过 2 个周期?
- service - 从 Service Fabric 访问 Azure Key Vault 上的机密
- postgresql - 如何将 RETURN SETOF RECORD 与动态列一起使用?
- python - 无法通过 python 中的 ssh 隧道连接到远程数据库
- apache-camel - SimpleScheduledRoutePolicy 在特定时间不起作用
- android-room - sql查询结果可以手动映射到房间吗?
- javascript - 如何从 Javascript/Typescript 中的数组对象计算运行总数并使用 HTML 在每个实例中显示输出?
- docker - 我可以直接部署生成的 docker 镜像而不将其推送到 DockerHub 吗?