是否可以以编程方式更改 json 资源文件?或者更改 FileUtils.java 以根据用户类型使用不同的 json



我知道我的问题措辞有些混乱,但是...

我的应用使用的是名为 Applozic 的即时消息 SDK。为了在UI中隐藏/添加某些功能,有一个可以编辑的applozic-settings.json文件。

例如:"hideGroupExitButton": true

我的应用有两种类型的用户:发送方和接收方。发送方具有接收方没有的一些功能...所以我需要根据用户类型更改其中一些值。

SO:是否可以根据用户类型以编程方式更改其中一些值?

(applozic-settings.json仅用于FileUtils.java--这是一个锁定文件...(

或者,我是否需要为其中一种用户类型创建一个新的 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"
}

最新更新