package com.huawei.hms.utils; import android.text.TextUtils; import com.huawei.hms.core.aidl.IMessageEntity; import com.huawei.hms.core.aidl.annotation.Packed; import com.huawei.hms.support.log.HMSLog; import com.huawei.hms.support.log.common.Base64; import java.lang.reflect.Field; import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; import java.security.AccessController; import java.security.PrivilegedAction; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; /* loaded from: classes2.dex */ public class JsonUtil { protected static final int VAL_BYTE = 2; protected static final int VAL_ENTITY = 0; protected static final int VAL_LIST = 1; protected static final int VAL_MAP = 3; protected static final int VAL_NULL = -1; protected static final String VAL_TYPE = "_val_type_"; private static String a(IMessageEntity iMessageEntity) throws IllegalAccessException, JSONException { JSONObject jSONObject = new JSONObject(); for (Class cls = iMessageEntity.getClass(); cls != null; cls = cls.getSuperclass()) { for (Field field : cls.getDeclaredFields()) { if (field.isAnnotationPresent(Packed.class)) { boolean isAccessible = field.isAccessible(); a(field, true); String name = field.getName(); Object obj = field.get(iMessageEntity); a(field, isAccessible); a(name, obj, jSONObject); } } } return jSONObject.toString(); } private static Object b(IMessageEntity iMessageEntity, Field field, JSONObject jSONObject) throws JSONException, IllegalAccessException { Object a = a(field.getName(), jSONObject); if (a == null) { return null; } try { if (field.getType().getName().startsWith("com.huawei") && (field.getType().newInstance() instanceof IMessageEntity)) { return jsonToEntity((String) a, (IMessageEntity) field.getType().newInstance()); } if (!(a instanceof JSONObject) || !((JSONObject) a).has(VAL_TYPE)) { return a; } int i = ((JSONObject) a).getInt(VAL_TYPE); if (i == 1 || i == 0) { return a(field.getGenericType(), (JSONObject) a); } if (i == 2) { return a((JSONObject) a); } if (i == 3) { return b(field.getGenericType(), (JSONObject) a); } StringBuilder sb = new StringBuilder("cannot support type : "); sb.append(i); HMSLog.e("JsonUtil", sb.toString()); return null; } catch (InstantiationException unused) { HMSLog.e("JsonUtil", "InstantiationException "); return null; } } @Deprecated public static String createJsonString(IMessageEntity iMessageEntity) { if (iMessageEntity == null) { HMSLog.e("JsonUtil", "createJsonString error, the input IMessageEntity is null"); return ""; } try { return a(iMessageEntity); } catch (IllegalAccessException e) { StringBuilder sb = new StringBuilder("catch IllegalAccessException "); sb.append(e.getMessage()); HMSLog.e("JsonUtil", sb.toString()); return ""; } catch (JSONException e2) { StringBuilder sb2 = new StringBuilder("catch JSONException "); sb2.append(e2.getMessage()); HMSLog.e("JsonUtil", sb2.toString()); return ""; } } public static Object getInfoFromJsonobject(String str, String str2) { if (!TextUtils.isEmpty(str) && !TextUtils.isEmpty(str2)) { try { JSONObject jSONObject = new JSONObject(str); if (!jSONObject.has(str2)) { return null; } Object obj = jSONObject.get(str2); if (obj instanceof String) { return obj; } } catch (JSONException unused) { HMSLog.e("JsonUtil", "getInfoFromJsonobject:parser json error :".concat(String.valueOf(str2))); } } return null; } public static int getIntValue(JSONObject jSONObject, String str) throws JSONException { if (jSONObject == null || !jSONObject.has(str)) { return -1; } return jSONObject.getInt(str); } public static String getStringValue(JSONObject jSONObject, String str) throws JSONException { if (jSONObject == null || !jSONObject.has(str)) { return null; } return jSONObject.getString(str); } @Deprecated public static IMessageEntity jsonToEntity(String str, IMessageEntity iMessageEntity) { if (iMessageEntity == null) { return null; } try { Class cls = iMessageEntity.getClass(); JSONObject jSONObject = new JSONObject(str); while (cls != null) { Field[] declaredFields = cls.getDeclaredFields(); if (declaredFields == null) { cls = cls.getSuperclass(); } else { for (Field field : declaredFields) { if (field.isAnnotationPresent(Packed.class)) { try { a(iMessageEntity, field, jSONObject); } catch (IllegalAccessException unused) { StringBuilder sb = new StringBuilder(); sb.append("jsonToEntity, set value of the field exception, field name:"); sb.append(field.getName()); HMSLog.e("JsonUtil", sb.toString()); } } } cls = cls.getSuperclass(); } } } catch (JSONException e) { StringBuilder sb2 = new StringBuilder("catch JSONException when parse jsonString"); sb2.append(e.getMessage()); HMSLog.e("JsonUtil", sb2.toString()); } return iMessageEntity; } private static void a(Field field, boolean z) { AccessController.doPrivileged(new PrivilegedAction(field, z) { // from class: com.huawei.hms.utils.JsonUtil.1 final Field a; final boolean b; { this.a = field; this.b = z; } @Override // java.security.PrivilegedAction public Object run() { this.a.setAccessible(this.b); return null; } }); } private static boolean a(String str, Object obj, JSONObject jSONObject) throws JSONException, IllegalAccessException { if (obj instanceof String) { jSONObject.put(str, (String) obj); return true; } if (obj instanceof Integer) { jSONObject.put(str, ((Integer) obj).intValue()); return true; } if (obj instanceof Short) { jSONObject.put(str, (Short) obj); return true; } if (obj instanceof Long) { jSONObject.put(str, (Long) obj); return true; } if (obj instanceof Float) { jSONObject.put(str, (Float) obj); return true; } if (obj instanceof Double) { jSONObject.put(str, (Double) obj); return true; } if (obj instanceof Boolean) { jSONObject.put(str, (Boolean) obj); return true; } if (obj instanceof JSONObject) { jSONObject.put(str, (JSONObject) obj); return true; } if (obj instanceof byte[]) { a(str, (byte[]) obj, jSONObject); return true; } if (obj instanceof List) { a(str, (List) obj, jSONObject); return true; } if (obj instanceof Map) { a(str, (Map) obj, jSONObject); return true; } if (!(obj instanceof IMessageEntity)) { return false; } try { jSONObject.put(str, a((IMessageEntity) obj)); return true; } catch (IllegalAccessException e) { HMSLog.e("JsonUtil", "IllegalAccessException , ".concat(String.valueOf(e))); return false; } } private static Map b(Type type, JSONObject jSONObject) throws JSONException, IllegalAccessException, InstantiationException { Class cls = (Class) ((ParameterizedType) type).getActualTypeArguments()[1]; JSONArray jSONArray = new JSONArray(jSONObject.getString("_map_")); HashMap hashMap = new HashMap(); for (int i = 0; i < jSONArray.length(); i += 2) { if (cls.newInstance() instanceof IMessageEntity) { hashMap.put(jSONArray.get(i), jsonToEntity(jSONArray.getString(i + 1), (IMessageEntity) cls.newInstance())); } else { hashMap.put(jSONArray.get(i), jSONArray.get(i + 1)); } } return hashMap; } private static void a(String str, Map map, JSONObject jSONObject) throws JSONException, IllegalAccessException { JSONArray jSONArray = new JSONArray(); for (Map.Entry entry : map.entrySet()) { Object key = entry.getKey(); Object value = entry.getValue(); if (key instanceof IMessageEntity) { jSONArray.put(a((IMessageEntity) key)); } else { jSONArray.put(key); } if (value instanceof IMessageEntity) { jSONArray.put(a((IMessageEntity) value)); } else { jSONArray.put(value); } } JSONObject jSONObject2 = new JSONObject(); jSONObject2.put(VAL_TYPE, 3); jSONObject2.put("_map_", jSONArray.toString()); jSONObject.put(str, jSONObject2); } private static void a(String str, byte[] bArr, JSONObject jSONObject) throws JSONException { JSONObject jSONObject2 = new JSONObject(); jSONObject2.put(VAL_TYPE, 2); try { jSONObject2.put("_byte_", Base64.encode(bArr)); } catch (IllegalArgumentException e) { StringBuilder sb = new StringBuilder("writeByte failed : "); sb.append(e.getMessage()); HMSLog.e("JsonUtil", sb.toString()); } jSONObject.put(str, jSONObject2); } private static void a(String str, List list, JSONObject jSONObject) throws JSONException, IllegalAccessException { JSONObject jSONObject2 = new JSONObject(); jSONObject2.put(VAL_TYPE, 1); jSONObject2.put("_list_size_", list.size()); for (int i = 0; i < list.size(); i++) { a("_list_item_".concat(String.valueOf(i)), list.get(i), jSONObject2); if (list.get(i) instanceof IMessageEntity) { jSONObject2.put(VAL_TYPE, 0); } } jSONObject.put(str, jSONObject2); } private static void a(IMessageEntity iMessageEntity, Field field, JSONObject jSONObject) throws JSONException, IllegalAccessException { Object b = b(iMessageEntity, field, jSONObject); if (b != null) { boolean isAccessible = field.isAccessible(); a(field, true); field.set(iMessageEntity, b); a(field, isAccessible); } } private static Object a(String str, JSONObject jSONObject) throws JSONException { if (jSONObject.has(str)) { return jSONObject.get(str); } if (jSONObject.has("header") && jSONObject.getJSONObject("header").has(str)) { return jSONObject.getJSONObject("header").get(str); } if (jSONObject.has("body") && jSONObject.getJSONObject("body").has(str)) { return jSONObject.getJSONObject("body").get(str); } return null; } private static List a(Type type, JSONObject jSONObject) throws JSONException, IllegalAccessException, InstantiationException { int i = jSONObject.getInt("_list_size_"); int i2 = jSONObject.getInt(VAL_TYPE); ArrayList arrayList = new ArrayList(i); for (int i3 = 0; i3 < i; i3++) { Object obj = jSONObject.get("_list_item_".concat(String.valueOf(i3))); if (i2 == 0) { arrayList.add(jsonToEntity((String) obj, (IMessageEntity) ((Class) ((ParameterizedType) type).getActualTypeArguments()[0]).newInstance())); } else if (i2 == 1) { arrayList.add(obj); } } return arrayList; } private static byte[] a(JSONObject jSONObject) throws JSONException { try { return Base64.decode(jSONObject.getString("_byte_")); } catch (IllegalArgumentException e) { StringBuilder sb = new StringBuilder("readByte failed : "); sb.append(e.getMessage()); HMSLog.e("JsonUtil", sb.toString()); return null; } } }