jJsonObject1Base de comparación.
Guía AdvPLframework.types.json.Compare( jJsonObject1, jJsonObject2, [@cRet] ) --> lRetCompara objetos JSON por propiedades y valores.
Función evita comparar solo serialización textual. Ficha describe comparación independiente del orden de propiedades/arrays y nombres sensibles a mayúsculas; si orden del array es contractual, no suponer igualdad estricta por posición. Requiere LIB 20211004 o superior y binario compatible TLPP. Entradas del mismo tipo, JSON/JSON o Array/Array, con salvedades para arrays JSON raíz. Ejemplo usa objetos simples reordenados. code/qty son claves fijas del contrato didáctico conservadas en idiomas. (TOTVS, s.f., ref. 1)
framework.types.json.Compare( jJsonObject1, jJsonObject2, [@cRet] ) --> lRetjJsonObject1Base de comparación.
jJsonObject2Objeto/array del mismo tipo de base.
cRetDiagnóstico por referencia.
Lógico de comparación; cRet puede recibir diagnóstico por referencia.
#Include "Protheus.ch"
User Function Ed392()
Local jBase := JsonObject():New()
Local jComparado := JsonObject():New()
Local cDiferencias := ""
// JSONs fijos validos; solo difiere orden de propiedades.
jBase:FromJson('{"code":"A","qty":2}')
jComparado:FromJson('{"qty":2,"code":"A"}')
ConOut(cValToChar(framework.types.json.Compare(jBase,jComparado,@cDiferencias)))
FreeObj(jBase)
FreeObj(jComparado)
Return NilVerdadero en ambiente compatible; orden de propiedades no cambia contenido. En revisión: ejemplo editorial no compilado ni ejecutado en Protheus. Comprobar includes, release, RDD y contexto antes de probar.
Desarrollado con Usina Docs · Alpha
© 2026 Usina.BR. Todos los derechos reservados. TOTVS, Protheus, Microsiga y sus respectivos logotipos son marcas de sus titulares. Guía AdvPL es independiente y utiliza citas limitadas, atribuidas y justificadas por fines educativos. Consulta los Términos de Uso. Términos de Uso
Comentarios
Todavía no hay comentarios aprobados.
Inicia sesión con Google o Microsoft para comentar.