com.alibaba.fastjson.JSONArray#isEmpty ( )源码实例Demo

下面列出了com.alibaba.fastjson.JSONArray#isEmpty ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: litchi   文件: NodeInfo.java
public static Map<String, List<NodeInfo>> getNodeMaps(JSONObject jsonObject, String nodeId) {
    Map<String, List<NodeInfo>> maps = new HashMap<>();

    for (String nodeType : jsonObject.keySet()) {
        JSONArray itemArrays = jsonObject.getJSONArray(nodeType);
        if (itemArrays.isEmpty()) {
            continue;
        }

        List<NodeInfo> list = itemArrays.toJavaList(NodeInfo.class);
        for (NodeInfo si : list) {
            si.setNodeType(nodeType);
            if (si.getNodeId().equals(nodeId)) {
                si.setPid(RuntimeUtils.pid());
            }
        }

        List<NodeInfo> serverInfoList = maps.getOrDefault(nodeType, new ArrayList<>());
        if (serverInfoList.isEmpty()) {
            maps.put(nodeType, serverInfoList);
        }
        serverInfoList.addAll(list);
    }
    return maps;
}
 
源代码2 项目: Jpom   文件: BaseDynamicService.java
/**
 * 处理子级数据
 *
 * @param classFeature 功能
 * @param roleId       角色id
 * @param dataId       数据id
 * @param jsonObject   parent
 * @return 是否包含子级
 */
default boolean doChildren(ClassFeature classFeature, String roleId, String dataId, JSONObject jsonObject) {
    Set<ClassFeature> children = DynamicData.getChildren(classFeature);
    if (children == null) {
        return false;
    }
    JSONArray childrens = new JSONArray();
    children.forEach(classFeature1 -> {
        RoleService bean = SpringUtil.getBean(RoleService.class);
        JSONArray jsonArray1 = bean.listDynamic(roleId, classFeature1, dataId);
        if (jsonArray1 == null || jsonArray1.isEmpty()) {
            return;
        }
        JSONObject jsonObject1 = new JSONObject();
        jsonObject1.put("children", jsonArray1);
        jsonObject1.put("title", classFeature1.getName());
        jsonObject1.put("id", classFeature1.name());
        childrens.add(jsonObject1);
    });
    if (!childrens.isEmpty()) {
        jsonObject.put("children", childrens);
    }
    return true;
}
 
源代码3 项目: rocketmq   文件: PlainPermissionManager.java
public AclConfig getAllAclConfig() {
    AclConfig aclConfig = new AclConfig();
    List<PlainAccessConfig> configs = new ArrayList<>();
    List<String> whiteAddrs = new ArrayList<>();
    JSONObject plainAclConfData = AclUtils.getYamlDataObject(fileHome + File.separator + fileName,
            JSONObject.class);
    if (plainAclConfData == null || plainAclConfData.isEmpty()) {
        throw new AclException(String.format("%s file  is not data", fileHome + File.separator + fileName));
    }
    JSONArray globalWhiteAddrs = plainAclConfData.getJSONArray(AclConstants.CONFIG_GLOBAL_WHITE_ADDRS);
    if (globalWhiteAddrs != null && !globalWhiteAddrs.isEmpty()) {
        whiteAddrs = globalWhiteAddrs.toJavaList(String.class);
    }
    JSONArray accounts = plainAclConfData.getJSONArray(AclConstants.CONFIG_ACCOUNTS);
    if (accounts != null && !accounts.isEmpty()) {
        configs = accounts.toJavaList(PlainAccessConfig.class);
    }
    aclConfig.setGlobalWhiteAddrs(whiteAddrs);
    aclConfig.setPlainAccessConfigs(configs);
    return aclConfig;
}
 
源代码4 项目: kafka-zabbix   文件: KafkaZabbixSender.java
void checkHostGroup(String hostGroup) {
	if (hostGroupCache.get(hostGroup) == null) {
		JSONObject filter = new JSONObject();
		filter.put("name", new String[] { hostGroup });
		Request getRequest = RequestBuilder.newBuilder()
				.method("hostgroup.get").paramEntry("filter", filter)
				.build();
		JSONObject getResponse = zabbixApi.call(getRequest);
		JSONArray result = getResponse.getJSONArray("result");
		if (!result.isEmpty()) { // host group exists.
			String groupid = result.getJSONObject(0).getString("groupid");
			hostGroupCache.put(hostGroup, groupid);
		} else {// host group not exists, create it.
			Request createRequest = RequestBuilder.newBuilder()
					.method("hostgroup.create")
					.paramEntry("name", hostGroup).build();
			JSONObject createResponse = zabbixApi.call(createRequest);
			String hostGroupId = createResponse.getJSONObject("result")
					.getJSONArray("groupids").getString(0);
			hostGroupCache.put(hostGroup, hostGroupId);
		}
	}
}
 
源代码5 项目: rebuild   文件: ChartData.java
/**
 * 维度轴
 * 
 * @return
 */
public Dimension[] getDimensions() {
	JSONArray items = config.getJSONObject("axis").getJSONArray("dimension");
	if (items == null || items.isEmpty()) {
		return new Dimension[0];
	}
	
	List<Dimension> list = new ArrayList<>();
	for (Object o : items) {
		JSONObject item = (JSONObject) o;
		Field[] validFields = getValidFields(item);
		Dimension dim = new Dimension(
				validFields[0], getFormatSort(item), getFormatCalc(item),
				item.getString("label"),
				validFields[1]);
		list.add(dim);
	}
	return list.toArray(new Dimension[0]);
}
 
源代码6 项目: RCT   文件: RDBAnalyzeResultService.java
public JSONArray getPrefixType(Long id, Long scheduleId) throws Exception {
	if (null == id) {
		throw new Exception("pid should not null!");
	}
	JSONArray count = getJsonArrayFromResult(id, scheduleId, IAnalyzeDataConverse.PREFIX_KEY_BY_COUNT);
	JSONArray memory = getJsonArrayFromResult(id, scheduleId, IAnalyzeDataConverse.PREFIX_KEY_BY_MEMORY);
	if(null == memory || memory.isEmpty()) {
		return count;
	}
	Map<String, JSONObject> memMap = getJsonObject(memory);
	JSONArray result = getPrefixArrayAddMem(count, memMap, "memorySize");
	return result;
}
 
源代码7 项目: Jpom   文件: BaseDynamicService.java
/**
 * 查询功能下面的所有动态数据
 *
 * @param classFeature 功能
 * @param roleId       角色id
 * @param dataId       上级数据id
 * @return tree array
 */
default JSONArray listDynamic(ClassFeature classFeature, String roleId, String dataId) {
    JSONArray listToArray;
    try {
        listToArray = listToArray(dataId);
        if (listToArray == null || listToArray.isEmpty()) {
            return null;
        }
    } catch (Exception e) {
        DefaultSystemLog.getLog().error("拉取动态信息错误", e);
        return null;
    }
    JSONArray jsonArray = new JSONArray();
    listToArray.forEach(obj -> {
        JSONObject jsonObject = new JSONObject();
        JSONObject data = (JSONObject) obj;
        String name = data.getString("name");
        String id = data.getString("id");
        jsonObject.put("title", name);
        jsonObject.put("id", StrUtil.emptyToDefault(dataId, "") + StrUtil.COLON + classFeature.name() + StrUtil.COLON + id);
        boolean doChildren = this.doChildren(classFeature, roleId, id, jsonObject);
        if (!doChildren) {
            // 没有子级
            RoleService bean = SpringUtil.getBean(RoleService.class);
            List<String> checkList = bean.listDynamicData(roleId, classFeature, dataId);
            if (checkList != null && checkList.contains(id)) {
                jsonObject.put("checked", true);
            }
        }
        jsonArray.add(jsonObject);
    });
    return jsonArray;
}
 
源代码8 项目: JustAuth   文件: AuthRenrenRequest.java
private String getAvatarUrl(JSONObject userObj) {
    JSONArray jsonArray = userObj.getJSONArray("avatar");
    if (Objects.isNull(jsonArray) || jsonArray.isEmpty()) {
        return null;
    }
    return jsonArray.getJSONObject(0).getString("url");
}
 
源代码9 项目: kafka-zabbix   文件: KafkaZabbixSender.java
void checkItem(String host, String item) {

		if (itemCache.get(itemCacheKey(host, item)) == null) {
			JSONObject search = new JSONObject();
			search.put("key_", item);
			Request getRequest = RequestBuilder.newBuilder().method("item.get")
					.paramEntry("hostids", hostCache.get(host))
					.paramEntry("search", search).build();
			JSONObject getResponse = zabbixApi.call(getRequest);
			JSONArray result = getResponse.getJSONArray("result");
			if (result.isEmpty()) {
				// create item
				int type = 2; // trapper
				int value_type = 0; // float
				int delay = 30;
				Request request = RequestBuilder.newBuilder()
						.method("item.create").paramEntry("name", item)
						.paramEntry("key_", item)
						.paramEntry("hostid", hostCache.get(host))
						.paramEntry("type", type)
						.paramEntry("value_type", value_type)
						.paramEntry("delay", delay).build();

				JSONObject response = zabbixApi.call(request);
				String itemId = response.getJSONObject("result")
						.getJSONArray("itemids").getString(0);
				itemCache.put(itemCacheKey(host, item), itemId);
			} else {
				// put into cache
				itemCache.put(itemCacheKey(host, item), result.getJSONObject(0)
						.getString("itemid"));
			}
		}
	}
 
源代码10 项目: xiaoyaoji   文件: PdfExportPlugin.java
private static List<List<Object>> genRspHeaders(String parentKey, JSONArray jsonArray) {

        if (jsonArray == null || jsonArray.isEmpty()) {
            return new ArrayList<>();
        }
        List<List<Object>> result = new ArrayList<>();
        if (parentKey == null) {
            Object[] header = new Object[]{"参数名称", "是否必须", "描述"};
            result.add(Arrays.asList(header));
        }
        if (parentKey != null) {
            parentKey += PLACEHOLDER_CHILDPARAM;
        }
        for (int i = 0; i < jsonArray.size(); i++) {
            JSONObject entry = jsonArray.getJSONObject(i);
            String name = entry.getString("name");
            if (parentKey != null) {
                name = parentKey + name;
            }
            String require = entry.getString("require");
            String description = entry.getString("description");
            Object[] param = new Object[]{name, require, description};
            result.add(Arrays.asList(param));
            JSONArray children = entry.getJSONArray("children");
            if (children != null && !children.isEmpty()) {
                parentKey = parentKey == null ? "" : parentKey;
                result.addAll(genRspHeaders(parentKey, children));
            }
        }

        return result;
    }
 
源代码11 项目: xiaoyaoji   文件: PdfExportPlugin.java
private static List<List<Object>> genReqHeaders(String parentKey, JSONArray jsonArray) {

        if (jsonArray == null || jsonArray.isEmpty()) {
            return new ArrayList<>();
        }
        List<List<Object>> result = new ArrayList<>();
        if (parentKey == null) {
            Object[] header = new Object[]{"参数名称", "是否必须", "默认值", "描述"};
            result.add(Arrays.asList(header));
        }
        if (parentKey != null) {
            parentKey += PLACEHOLDER_CHILDPARAM;
        }
        for (int i = 0; i < jsonArray.size(); i++) {
            JSONObject entry = jsonArray.getJSONObject(i);
            String name = entry.getString("name");
            if (parentKey != null) {
                name = parentKey + name;
            }
            String require = entry.getString("require");
            String defaultValue = entry.getString("defaultValue");
            String description = entry.getString("description");
            Object[] param = new Object[]{name, require, defaultValue, description};
            result.add(Arrays.asList(param));
            JSONArray children = entry.getJSONArray("children");
            if (children != null && !children.isEmpty()) {
                parentKey = parentKey == null ? "" : parentKey;
                result.addAll(genReqHeaders(parentKey, children));
            }
        }

        return result;
    }
 
源代码12 项目: rocketmq   文件: PlainPermissionManager.java
public void load() {

        Map<String, PlainAccessResource> plainAccessResourceMap = new HashMap<>();
        List<RemoteAddressStrategy> globalWhiteRemoteAddressStrategy = new ArrayList<>();

        JSONObject plainAclConfData = AclUtils.getYamlDataObject(fileHome + File.separator + fileName,
            JSONObject.class);
        if (plainAclConfData == null || plainAclConfData.isEmpty()) {
            throw new AclException(String.format("%s file  is not data", fileHome + File.separator + fileName));
        }
        log.info("Broker plain acl conf data is : ", plainAclConfData.toString());
        JSONArray globalWhiteRemoteAddressesList = plainAclConfData.getJSONArray("globalWhiteRemoteAddresses");
        if (globalWhiteRemoteAddressesList != null && !globalWhiteRemoteAddressesList.isEmpty()) {
            for (int i = 0; i < globalWhiteRemoteAddressesList.size(); i++) {
                globalWhiteRemoteAddressStrategy.add(remoteAddressStrategyFactory.
                        getRemoteAddressStrategy(globalWhiteRemoteAddressesList.getString(i)));
            }
        }

        JSONArray accounts = plainAclConfData.getJSONArray(AclConstants.CONFIG_ACCOUNTS);
        if (accounts != null && !accounts.isEmpty()) {
            List<PlainAccessConfig> plainAccessConfigList = accounts.toJavaList(PlainAccessConfig.class);
            for (PlainAccessConfig plainAccessConfig : plainAccessConfigList) {
                PlainAccessResource plainAccessResource = buildPlainAccessResource(plainAccessConfig);
                plainAccessResourceMap.put(plainAccessResource.getAccessKey(),plainAccessResource);
            }
        }

        // For loading dataversion part just
        JSONArray tempDataVersion = plainAclConfData.getJSONArray(AclConstants.CONFIG_DATA_VERSION);
        if (tempDataVersion != null && !tempDataVersion.isEmpty()) {
            List<DataVersion> dataVersion = tempDataVersion.toJavaList(DataVersion.class);
            DataVersion firstElement = dataVersion.get(0);
            this.dataVersion.assignNewOne(firstElement);
        }

        this.globalWhiteRemoteAddressStrategy = globalWhiteRemoteAddressStrategy;
        this.plainAccessResourceMap = plainAccessResourceMap;
    }
 
源代码13 项目: DBus   文件: StormToplogyOpHelper.java
public String getTopoRunningInfoById(String topologyId) {
        String topoWorkers = getForResult(stormRestApi + "/topology-workers/" + topologyId);
        //目前都是单worker部署,取index 0
        JSONObject topoWorkersObj = JSON.parseObject(topoWorkers);
        JSONArray hostPortInfo = topoWorkersObj.getJSONArray("hostPortList");
        if (!hostPortInfo.isEmpty()) {
            String hostInfo = hostPortInfo.getJSONObject(0).getString("host");
            String port = hostPortInfo.getJSONObject(0).getString("port");
            return String.format("%s:%s", hostInfo, port);
        }
        return "";
//        String url = stormRestApi + "/topology/" + topologyId + "/visualization";
//        logger.info("url:{}", url);
//        String result = getForResult(url);
//        JSONObject topoInfo = JSON.parseObject(result);
//        String host = null;
//        String port = null;
//        for (Map.Entry<String, Object> entry : topoInfo.entrySet()) {
//            JSONObject value = (JSONObject) entry.getValue();
//            if (value.containsKey(":stats")) {
//                JSONObject stats = value.getJSONArray(":stats").getJSONObject(0);
//                host = stats.getString(":host");
//                port = stats.getString(":port");
//                break;
//            }
//        }
//        return String.format("%s:%s", host, port);
    }
 
源代码14 项目: rebuild   文件: NavBuilder.java
/**
 * @param user
 * @return
 */
public JSONArray getNavPortal(ID user) {
    ConfigEntry config = getLayoutOfNav(user);
    if (config == null) {
        return NAVS_DEFAULT;
    }

    // 过滤
    JSONArray navs = (JSONArray) config.getJSON("config");
    for (Iterator<Object> iter = navs.iterator(); iter.hasNext(); ) {
        JSONObject nav = (JSONObject) iter.next();
        JSONArray subNavs = nav.getJSONArray("sub");

        if (subNavs != null && !subNavs.isEmpty()) {
            for (Iterator<Object> subIter = subNavs.iterator(); subIter.hasNext(); ) {
                JSONObject subNav = (JSONObject) subIter.next();
                if (isFilterNav(subNav, user)) {
                    subIter.remove();
                }
            }

            // 无子级,移除主菜单
            if (subNavs.isEmpty()) {
                iter.remove();
            }
        } else if (isFilterNav(nav, user)) {
            iter.remove();
        }
    }
    return navs;
}
 
源代码15 项目: rebuild   文件: RobotApprovalManager.java
/**
 * 获取用户可用流程
 * 
 * @param record
 * @param user
 * @return
 */
public FlowDefinition[] getFlowDefinitions(ID record, ID user) {
	FlowDefinition[] defs = getFlowDefinitions(MetadataHelper.getEntity(record.getEntityCode()));
	if (defs.length == 0) {
		return new FlowDefinition[0];
	}
	
	ID owning = Application.getRecordOwningCache().getOwningUser(record);
	// 过滤可用的
	List<FlowDefinition> workable = new ArrayList<>();
	for (FlowDefinition def : defs) {
		if (def.isDisabled() || def.getJSON("flowDefinition") == null) {
			continue;
		}
		
		FlowParser flowParser = def.createFlowParser();
		FlowNode root = flowParser.getNode("ROOT");  // 发起人节点
		
		// 发起人匹配
		JSONArray users = root.getDataMap().getJSONArray("users");
		if (users == null || users.isEmpty()) {
			users = JSON.parseArray("['OWNS']");
		}
		if (FlowNode.USER_ALL.equals(users.getString(0))
				|| (FlowNode.USER_OWNS.equals(users.getString(0)) && owning.equals(user))
				|| UserHelper.parseUsers(users, record).contains(user)) {
			workable.add(def);
		}
	}
	return workable.toArray(new FlowDefinition[0]);
}
 
源代码16 项目: tephra   文件: TableImpl.java
@Override
public void parseShape(ReaderContext readerContext, XSLFGraphicFrame xslfGraphicFrame, JSONObject shape) {
    if (!(xslfGraphicFrame instanceof XSLFTable))
        return;

    XSLFTable xslfTable = (XSLFTable) xslfGraphicFrame;
    JSONObject table = new JSONObject();
    XSLFTheme xslfTheme = readerContext.getTheme();
    CTTableStyle ctTableStyle = findTableStyle(readerContext, xslfTable);
    if (xslfTheme != null && ctTableStyle != null)
        parseFill(xslfTheme, ctTableStyle, table);
    JSONArray rows = new JSONArray();
    xslfTable.getRows().forEach(xslfTableRow -> {
        JSONArray cells = new JSONArray();
        xslfTableRow.getCells().forEach(xslfTableCell -> {
            JSONObject cell = new JSONObject();
            parseSpan(xslfTableCell, cell);
            parseBorder(xslfTableCell, cell);
            parser.parseShape(readerContext, xslfTableCell, cell);
            cells.add(cell);
        });
        if (cells.isEmpty())
            return;

        JSONObject row = new JSONObject();
        row.put("cells", cells);
        rows.add(row);
    });
    if (rows.isEmpty())
        return;

    table.put("rows", rows);
    shape.put("table", table);
}
 
源代码17 项目: rebuild   文件: NavBuilder.java
/**
 * 渲染导航菜單
 *
 * @param item
 * @param activeNav
 * @return
 */
public String renderNavItem(JSONObject item, String activeNav) {
    final boolean isUrlType = "URL".equals(item.getString("type"));
    String navName = item.getString("value");
    String navUrl = item.getString("value");

    boolean isOutUrl = isUrlType && navUrl.startsWith("http");
    if (isUrlType) {
        navName = "nav_url-" + navName.hashCode();
        if (isOutUrl) {
            navUrl = ServerListener.getContextPath() + "/commons/url-safe?url=" + CodecUtils.urlEncode(navUrl);
        } else {
            navUrl = ServerListener.getContextPath() + navUrl;
        }
    } else if (NAV_FEEDS.equals(navName)) {
        navName = "nav_entity-Feeds";
        navUrl = ServerListener.getContextPath() + "/feeds/home";
    } else if (NAV_FILEMRG.equals(navName)) {
        navName = "nav_entity-Attachment";
        navUrl = ServerListener.getContextPath() + "/files/home";
    } else {
        navName = "nav_entity-" + navName;
        navUrl = ServerListener.getContextPath() + "/app/" + navUrl + "/list";
    }

    String navIcon = StringUtils.defaultIfBlank(item.getString("icon"), "texture");
    String navText = item.getString("text");

    JSONArray subNavs = null;
    if (activeNav != null) {
        subNavs = item.getJSONArray("sub");
        if (subNavs == null || subNavs.isEmpty()) {
            subNavs = null;
        }
    }

    StringBuilder navHtml = new StringBuilder()
            .append(String.format("<li class=\"%s\"><a href=\"%s\" target=\"%s\"><i class=\"icon zmdi zmdi-%s\"></i><span>%s</span></a>",
                    navName + (subNavs == null ? StringUtils.EMPTY : " parent"),
                    subNavs == null ? navUrl : "###",
                    isOutUrl ? "_blank" : "_self",
                    navIcon,
                    navText));
    if (subNavs != null) {
        StringBuilder subHtml = new StringBuilder()
                .append("<ul class=\"sub-menu\"><li class=\"title\">")
                .append(navText)
                .append("</li><li class=\"nav-items\"><div class=\"content\"><ul class=\"sub-menu-ul\">");

        for (Object o : subNavs) {
            JSONObject subNav = (JSONObject) o;
            subHtml.append(renderNavItem(subNav, null));
        }
        subHtml.append("</ul></div></li></ul>");
        navHtml.append(subHtml);
    }
    navHtml.append("</li>");

    if (activeNav != null) {
        Document navBody = Jsoup.parseBodyFragment(navHtml.toString());
        for (Element nav : navBody.select("." + activeNav)) {
            nav.addClass("active");
            if (activeNav.startsWith("nav_entity-")) {
                Element navParent = nav.parent();
                if (navParent != null && navParent.hasClass("sub-menu-ul")) {
                    navParent.parent().parent().parent().parent().addClass("open active");
                }
            }
        }
        return navBody.selectFirst("li").outerHtml();
    }
    return navHtml.toString();
}
 
源代码18 项目: kafka-zabbix   文件: KafkaZabbixSender.java
void checkHost(String host, String ip) {
	if (hostCache.get(host) == null) {
		JSONObject filter = new JSONObject();
		filter.put("host", new String[] { host });
		Request getRequest = RequestBuilder.newBuilder().method("host.get")
				.paramEntry("filter", filter).build();
		JSONObject getResponse = zabbixApi.call(getRequest);
		JSONArray result = getResponse.getJSONArray("result");
		if (!result.isEmpty()) { // host exists.
			String hostid = result.getJSONObject(0).getString("hostid");
			hostCache.put(host, hostid);
		} else {// host not exists, create it.
			JSONArray groups = new JSONArray();
			JSONObject group = new JSONObject();
			group.put("groupid", hostGroupCache.get(hostGroup));
			groups.add(group);

			// "interfaces": [
			// {
			// "type": 1,
			// "main": 1,
			// "useip": 1,
			// "ip": "192.168.3.1",
			// "dns": "",
			// "port": "10050"
			// }
			// ],

			JSONObject interface1 = new JSONObject();
			interface1.put("type", 1);
			interface1.put("main", 1);
			interface1.put("useip", 1);
			interface1.put("ip", ip);
			interface1.put("dns", "");
			interface1.put("port", "10051");

			Request request = RequestBuilder.newBuilder()
					.method("host.create").paramEntry("host", host)
					.paramEntry("groups", groups)
					.paramEntry("interfaces", new Object[] { interface1 })
					.build();
			JSONObject response = zabbixApi.call(request);
			String hostId = response.getJSONObject("result")
					.getJSONArray("hostids").getString(0);
			hostCache.put(host, hostId);
		}
	}
}
 
源代码19 项目: weixin4j   文件: Menu.java
private void recursion(JSONObject jsonButton, SingleButton menuButton) {
    String type = null;
    if (jsonButton.containsKey("type")) {
        type = jsonButton.getString("type");
    }
    SingleButton singleButton = null;
    //判断对象type
    if (type == null) {
        //有子的自定义菜单
        singleButton = new SingleButton(jsonButton.getString("name"));
    } else if (type.equals(ButtonType.Click.toString())) {
        //转成点击按钮
        singleButton = new ClickButton(jsonButton.getString("name"), jsonButton.getString("key"));
    } else if (type.equals(ButtonType.View.toString())) {
        //转成view按钮
        singleButton = new ViewButton(jsonButton.getString("name"), jsonButton.getString("url"));
    } else if (type.equals(ButtonType.Scancode_Push.toString())) {
        //扫码推事件
        singleButton = new ScancodePushButton(jsonButton.getString("name"), jsonButton.getString("key"));
    } else if (type.equals(ButtonType.Scancode_Waitmsg.toString())) {
        //扫码推事件且弹出“消息接收中”提示框
        singleButton = new ScancodeWaitMsgButton(jsonButton.getString("name"), jsonButton.getString("key"));
    } else if (type.equals(ButtonType.Pic_SysPhoto.toString())) {
        //弹出系统拍照发图
        singleButton = new PicSysPhotoButton(jsonButton.getString("name"), jsonButton.getString("key"));
    } else if (type.equals(ButtonType.Pic_Photo_OR_Album.toString())) {
        //弹出拍照或者相册发图
        singleButton = new PicPhotoOrAlbumButton(jsonButton.getString("name"), jsonButton.getString("key"));
    } else if (type.equals(ButtonType.Pic_Weixin.toString())) {
        //弹出微信相册发图器
        singleButton = new PicWeixinButton(jsonButton.getString("name"), jsonButton.getString("key"));
    } else if (type.equals(ButtonType.Location_Select.toString())) {
        //弹出地理位置选择器
        singleButton = new LocationSelectButton(jsonButton.getString("name"), jsonButton.getString("key"));
    } else if (type.equals(ButtonType.Media_Id.toString())) {
        //永久素材(图片、音频、视频、图文消息)
        singleButton = new MediaIdButton(jsonButton.getString("name"), jsonButton.getString("media_id"));
    } else if (type.equals(ButtonType.View_Limited.toString())) {
        //永久素材(图文消息)
        singleButton = new ViewLimitedButton(jsonButton.getString("name"), jsonButton.getString("media_id"));
    } else if (type.equals(ButtonType.Miniprogram.toString())) {
        //小程序菜单
        singleButton = new MiniprogramButton(jsonButton.getString("name"), jsonButton.getString("appid"),
                jsonButton.getString("pagepath"), jsonButton.getString("url"));
    }
    if (jsonButton.containsKey("sub_button")) {
        JSONArray sub_button = jsonButton.getJSONArray("sub_button");
        //判断是否存在子菜单
        if (!sub_button.isEmpty()) {
            //如果不为空,则添加到singleButton中
            for (int i = 0; i < sub_button.size(); i++) {
                JSONObject jsonSubButton = sub_button.getJSONObject(i);
                recursion(jsonSubButton, singleButton);
            }
        }
    }
    //判断是否存在子菜单
    if (menuButton == null) {
        //只添加一级菜单到集合中
        button.add(singleButton);
    } else {
        //添加到二级自定义菜单中
        menuButton.getSubButton().add(singleButton);
    }
}
 
源代码20 项目: tephra   文件: HbaseImpl.java
@Override
public JSONObject findOneAsJson(HbaseQuery query) {
    JSONArray array = queryAsJson(query.size(1));

    return array.isEmpty() ? null : array.getJSONObject(0);
}