private boolean produceMapNodeToRootSub(Integer rootCid, JSONObject json)// ӽڵڵӳӺ
	{
		try {
			if (json.has("cid")) {
				classesMapNodeToRoot.put(json.getInt("cid"), rootCid);
				if (json.has("is_parent")
						&& json.getBoolean("is_parent") == true) {
					JSONArray jsonChildrenClasses = json
							.getJSONArray("children");
					for (int i = 0; i < jsonChildrenClasses.length(); i++) {
						produceMapNodeToRootSub(rootCid,
								jsonChildrenClasses.getJSONObject(i));
					}
				}
			}
			return true;
		} catch (JSONException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return false;
		}
	}