@SuppressWarnings("unchecked")
	private static Object parseStrJson(String para) throws IdmeException {
		try {
			JSONTokener jsonTokener = new JSONTokener(para);
			Object o = jsonTokener.nextValue();
			if (o instanceof JSONObject) {
				JSONObject jsonObj = (JSONObject) o;
				JSONObject jsonRet = new JSONObject();
				for (Iterator<Object> iter = jsonObj.keys(); iter.hasNext();) {
					String key = (String)iter.next();
					String value = jsonObj.get(key).toString();
					if(value == null || "".equals(value)) {
						jsonRet.accumulate(key, "");
					} else {
						jsonRet.accumulate(key, parseStrJson(value));
					}
			    }
				return jsonRet.length() > 0 ? jsonRet : jsonObj;
			} else if(o instanceof JSONArray){
				JSONArray jsonArray = (JSONArray) o;
				for(int i = 0; i < jsonArray.length(); i++) {
					jsonArray.put(i, parseStrJson(jsonArray.get(i).toString()));
				}
				return jsonArray;
			} else {
				return o.toString();
			}
		} catch (Exception e) {
			if (e instanceof IdmeException) {
				throw (IdmeException) e;
			} else {
				throw new IdmeException("parse error", e);
			}
		}
	}