函数处理一个英文的权限结构

package com.cn.test;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

import net.sf.json.JSONArray;
import net.sf.json.JSONException;
import net.sf.json.JSONObject;
import net.sf.json.processors.JsDateJsonBeanProcessor;

/**
 * 处理一个权限文件
 * @author lg
 *
 */
public class TestAccess {
	/**
	 * 
	 * @param str1
	 * 			权限输入参数
	 * @param permissionMap
	 * 			权限名称映射
	 * @param permissionTypeMap
	 * 			权限类别映射
	 * @return
	 */
	public static JSONObject testPermissiomFile(String str1,Map permissionMap,Map permissionTypeMap){
		JSONObject returnJson =new JSONObject();
		try {
			//先将字符串转化为json对象
			JSONObject jsonObject = JSONObject.fromObject(str1);
	        Iterator<?> iterator = jsonObject.keys();
	        String key = null;
	        String value = null;
	        while(iterator.hasNext()){
	        	key=(String)iterator.next();
	        	value=jsonObject.getString(key);
	        	if(value.startsWith("{")){
	        		JSONObject jsonValue=(JSONObject) jsonObject.get(key);
	        		JSONObject jsonObject3=new JSONObject();
	        		if(permissionTypeMap.containsKey(key)){
	        			jsonObject3.put("name",permissionTypeMap.get(key));
	        		}
	        		jsonObject3.putAll(jsonValue);
	    			JSONObject jsonObject2=testPermissiomFile(jsonObject3.toString(), permissionMap, permissionTypeMap);
	    			returnJson.put(key, jsonObject2);
	        	}else if(value.startsWith("[")){
	        		JSONArray arr= (JSONArray) jsonObject.get(key);
	        		JSONArray jsonArray2=new JSONArray();
	        		for (int i = 0; i < arr.size(); i++) {
						if(permissionMap.containsKey(arr.get(i))){
			    			JSONObject returnJson1 = new JSONObject();
			    			returnJson1.put("type", arr.get(i));
			    			returnJson1.put("name", permissionMap.get(arr.get(i)));
			    			jsonArray2.element(returnJson1);
						}
					}
	        		returnJson.put(key, jsonArray2);
	        	}else{
	        		returnJson.put(key, value);
	        	}
	        }
		} catch(JSONException jExp){
			throw new JSONException("%传入的参数不是JSON格式%"+jExp.getMessage());
		}
		return returnJson;
	}
	
	public static void main(String[] args) {
		JSONObject jsonObject=new JSONObject();
		JSONObject jsonObject1=new JSONObject();
		JSONObject jsonObject2=new JSONObject();
		jsonObject1.put("PERMISSIONS", new String[]{"READ_INVENTORY_DASHBOARD","READ_CONNECTION_DASHBOARD"});
		jsonObject2.put("PERMISSIONS", new String[]{"MANAGE_DEPARTMENT","MANAGE_USER"});
		jsonObject.put("DASHBOARD", jsonObject1);
		jsonObject.put("USER", jsonObject2);
		System.out.println(jsonObject.toString());
		Map permissionMap =new	HashMap<>();
		permissionMap.put("READ_INVENTORY_DASHBOARD", "商品统计查看");
		permissionMap.put("READ_CONNECTION_DASHBOARD", "供应商统计查看");
		permissionMap.put("MANAGE_DEPARTMENT", "部门管理");
		permissionMap.put("MANAGE_USER", "员工管理");
		Map permissionTypeMap = new HashMap<>();
		permissionTypeMap.put("DASHBOARD", "统计面板权限");
		permissionTypeMap.put("USER", "员工权限管理");
		JSONObject returnJson=testPermissiomFile(jsonObject.toString(), permissionMap, permissionTypeMap);
		System.out.println(returnJson.toString());
	}

}

Java代码如上

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

有鹿如溪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值