Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

269
Vistas
JSONObject.similar(JSONObject) ¿qué se compara realmente?

Estaba buscando una manera de comparar dos JSONObjects además de usar

JSONObject.toString().equals(JSONObject.toString())

y me encontré con este método similar, pero es muy vago acerca de lo que compara.

"Determine si dos JSONObjects son similares. Deben contener el mismo conjunto de nombres que deben estar asociados con valores similares ". Enlace

¿Qué se supone que significa eso? ¿Qué tan similar? ¿Exactamente lo mismo?

Busqué muy duro y no pude encontrar nada que pudiera aclararlo.

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Aquí está la fuente de JSONObject.similar() :

 /** * Determine if two JSONObjects are similar. * They must contain the same set of names which must be associated with * similar values. * * @param other The other JSONObject * @return true if they are equal */ public boolean similar(Object other) { try { if (!(other instanceof JSONObject)) { return false; } if (!this.keySet().equals(((JSONObject)other).keySet())) { return false; } for (final Entry<String,?> entry : this.entrySet()) { String name = entry.getKey(); Object valueThis = entry.getValue(); Object valueOther = ((JSONObject)other).get(name); if(valueThis == valueOther) { continue; } if(valueThis == null) { return false; } if (valueThis instanceof JSONObject) { if (!((JSONObject)valueThis).similar(valueOther)) { return false; } } else if (valueThis instanceof JSONArray) { if (!((JSONArray)valueThis).similar(valueOther)) { return false; } } else if (valueThis instanceof Number && valueOther instanceof Number) { if (!isNumberSimilar((Number)valueThis, (Number)valueOther)) { return false; }; } else if (!valueThis.equals(valueOther)) { return false; } } return true; } catch (Throwable exception) { return false; } }

Esencialmente similar() compara recursivamente los nombres y valores de los JSONObject y devuelve verdadero si son iguales. Primero, verifica si los keySet son iguales, luego pasa a los valores. Comprueba recursivamente cada valor en el keySet para ver si son iguales en cada JSONObject . Si no, devuelve falso.

over 4 years ago · Santiago Trujillo Denunciar

0

La descripción que encontró se relaciona con el método JSONObject.similar(), que compara si dos objetos JSON son iguales, pero quizás tengan un orden diferente de sus atributos.

El equals() comparará cada carácter de cadena, uno por uno, comprobando si es el mismo, teniendo el mismo orden.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda