java - 是否可以以编程方式更改 json 资源文件?或者根据用户类型更改 FileUtils.java 以使用不同的 json 文件?
问题描述
我知道我的问题措辞有些混乱,但是...
我的应用程序使用名为 Applozic 的即时消息 SDK。为了在 UI 中隐藏/添加某些功能,可以编辑 applozic-settings.json 文件。
例如:"hideGroupExitButton": true
我的应用有两种类型的用户:发送者和接收者。发送者有一些接收者没有的能力......所以我需要根据用户类型更改其中一些值。
SO:是否可以根据用户类型以编程方式更改其中一些值?
(applozic-settings.json 仅在 FileUtils.java 中使用——这是一个 LOCKED 文件......)
或者,我是否需要为其中一种用户类型创建一个新的 json 文件,并以某种方式更改 FileUtils.java 以使用正确的文件?
这是 FileUtils.java 中的相关代码:
public static String loadSettingsJsonFile(Context context) {
BufferedReader br = null;
StringBuffer sb = new StringBuffer();
try {
br = new BufferedReader(new InputStreamReader(context.getAssets().open(
"applozic-settings.json"), "UTF-8"));
String line;
if (br != null) {
while ((line = br.readLine()) != null) {
sb.append(line);
}
}
} catch (IOException ioe) {
return null;
} catch (Exception e) {
} finally {
try {
if (br != null) {
br.close();
}
} catch (IOException e) {
}
}
return sb.toString();
}
解决方案
如果我理解正确,可以编辑 JSON 文件的值。请参阅: JSON 文件 - Java:编辑/更新字段值
如果您想根据用户打开不同的文件,只需将不同的文件存储在字符串中,例如这里:
br = new BufferedReader(new InputStreamReader(context.getAssets().open(
"applozic-settings.json"), "UTF-8"));
你可以简单地说string file = "applozic-settings.json";
并直接将其传递给上面的函数:
br = new BufferedReader(new InputStreamReader(context.getAssets().open(
file), "UTF-8"));
所以本质上你可以说:
string file;
if(userType == x){
file="x.json"
}
else{
file="y.json"
}
推荐阅读
- c# - System.Web.Caching.Cache 因内存不足而过期?
- android - 如何更改 Here Map 上的标签语言?
- oracle - ORA-04091 错误使用触发器保持两个表同步
- python - 将复杂的 curl 命令翻译成 python3
- docker - 如何为安装了 Bazel、Kubectl 和 Gcloud 的 Cloud Build 创建 Slim Docker 映像?
- memory - 为什么我们需要内存映射 IO?
- mongodb - Mongorestore 不断向我抛出“(NotMaster) not master”错误
- python - 防止 SQL 注入的 Python MySQL 语句
- javascript - 如何在javascript中动态增加变量名?
- c# - 在测试使用 EF Core、“Mock”或“InMemory”的 Web 应用程序时,使用什么更好?