项目中有一个需求,从接口获取用户的权限信息。所有的权限信息是这样的:
"authorities": [
"1003",
"1002",
"1001"
]
每个数字代表一个权限,有权限就返回相应的数字,没有权限就不返回。
如果是一个权限还好处理,在多个权限的时候就有点难了,后来搜到这篇文章
http://blog.csdn.net/u011494050/article/details/38851369
可以用json把数组转成字符串,再储存起来。
储存:
List<String> authorities = pms.authorities;//获得返回的json数组
JSONArray jsonArray = new JSONArray();
jsonArray.addAll(authorities);
SharedPreferences.Editor editor = prefs.edit();
editor.putString(“authorities”,jsonArray.toString());
editor.commit();
读取:
public static boolean hasAuthority(String authority) {
SharedPreferences sp = getSharedPreferences(“authorities”, Context.MODE_PRIVATE).
JSONArray jsonArray = JSON.parseArray(prefs.getString("authorities", "[]"));
return jsonArray.contains(authority);
}
使用时只需要执行hasAuthority方法,传入“1001” 就可以判断是否有1001的权限。
if (hasAuthority("1001")) {
执行有权限的操作
}