0

Tengo una variable q proviene de un response que es igual a "TRUE/FALSE" y la estoy comparando en un if asi :

if(  type_q.get(counter).equals("TRUE/FALSE") ){
//do something
}

pero no me la reconoce. Si la copio del response sale con backslash asi:

"TRUE\/FALSE"

como la puedo validar? gracias.

  • Si imprimes type_q.get(counter) ¿que obtienes? – Jorgesys May 02 '19 at 14:01
  • TRUE\/FALSE (viene de un array asi: type":["OPTION","CHECK","TRUE\/FALSE"]) – LyonOconner May 02 '19 at 16:04
  • Si imprimes la respuesta se va a mostrar "\/" pero cuando obtienes ese valor del array no se obtiene "\/", se obtiene únicamente "/", solo asegura que se esta obteniendo el tercer elemento del array, ese debe ser tu problema. – Jorgesys May 02 '19 at 20:36

2 Answers2

0

Si obtienes el response del JSON se muestra de esta forma tal y como lo indicas:

["OPTION","CHECK","TRUE\/FALSE"]

Pero si obtienes los valores del json, estos se deben obtener con los valores y no se obtiene "TRUE\/FALSE" si no únicamente "TRUE/FALSE"

  JSONObject jsonR = new JSONObject(r);
  JSONArray jsonArr = jsonR.getJSONArray("type");
  System.out.println(type_q.get(0).toString()); //OPTION
  System.out.println(type_q.get(1).toString()); //CHECK
  System.out.println(type_q.get(2).toString()); //TRUE/FALSE

por lo tanto la comparación que realizas debe funcionar sin problema solo asegura que el valor que obtiene sea el del indice 2 que contiene "TRUE/FALSE":

if( type_q.get(counter).equals("TRUE/FALSE") ){
   //Iguales
}else{
  //No son iguales
}
Jorgesys
  • 103,630
  • 13
  • 52
  • 124
-1

Si sabes que es una String que contiene "/", hazle un split , te dividirá la String en un array, en la posición[0] tendrás el true y en la [1] el false, suponiendo que venga "/", sino try catch, comprueba la longitud y si es 0 o peta, hazle el split con "\". puedes intentar también hacer el split con "/" (las 2 barras que te salen) la primera barra que ves es un caracter de escape.

Aquí te dejo un ejemplo de uso básico:

Cómo separar un String en Java. Cómo utilizar split()

EduBw
  • 2,126
  • 1
  • 12
  • 48