Gson analiza los datos JSON devueltos y no se puede crear un controlador dentro del hilo que no ha llamado a Looper.prepare () en el hilo recién abierto

1. Análisis de datos JSON

1. Los tipos simples como int y String pueden usar JSONObject directamente para construir nuevos objetos, y puedes usar getString o getInt para obtener valores.
String jsonData = OkHttpUtil.doPostHttpRequest(Constant.API.LOGIN_URL, map.toString());
JSONObject Jobject = new JSONObject(jsonData);
String msg = Jobject.getString("msg");
String data = Jobject.getString("data");
if(Jobject.getInt("code")==200)
{
        Toast.makeText(LoginActivity.this,data+"登陆成功",Toast.LENGTH_SHORT).show();
        System.out.println(msg);
        System.out.println(data);
}
else {
       Toast.makeText(LoginActivity.this,"账户或密码错误",Toast.LENGTH_SHORT).show();
}
2. Tipos complejos, como pares clave-valor, encapsulan una función

    /**
     * 将JSON转化为Map
     * @param data
     * @return
     */
    public static Map<String, String> JsonToMap(String data){
        GsonBuilder gb = new GsonBuilder();
        Gson g = gb.create();
        Map<String, String> map = g.fromJson(data, new TypeToken<Map<String, String>>() {}.getType());
        return map;
    }

transferir

Map<String,String> DataMap = JsonToMap(data);
System.out.println(DataMap.get("name"));

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

2. El nuevo hilo no está vinculado al controlador

Error No se puede crear un controlador dentro del hilo que no ha llamado a Looper.prepare () Inserte la descripción de la imagen aquí
Solución: agregar al principio del método de ejecución del nuevo hilo

Looper.prepare();
Looper.loop();

P.ej
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/qq_41170600/article/details/108902913
Recomendado
Clasificación