jJsonObject1Base da comparação.
AdvPL Guiaframework.types.json.Compare( jJsonObject1, jJsonObject2, [@cRet] ) --> lRetCompara objetos JSON por propriedades e valores.
A função evita comparar apenas a serialização textual dos objetos. A ficha descreve comparação sem depender da ordem de propriedades ou arrays e diferencia nomes de propriedades por maiúsculas/minúsculas; se a ordem de um array fizer parte do contrato, não presumir igualdade estrita por posição. Exige LIB 20211004 ou superior e binário com suporte a TLPP. Os dois argumentos devem ter o mesmo tipo, JSON/JSON ou Array/Array, com ressalvas documentadas para arrays JSON na raiz. O exemplo usa somente objetos simples com propriedades reordenadas. code e qty são chaves fixas do contrato didático, preservadas nos idiomas. (TOTVS, s.d., ref. 1)
framework.types.json.Compare( jJsonObject1, jJsonObject2, [@cRet] ) --> lRetjJsonObject1Base da comparação.
jJsonObject2Objeto/array do mesmo tipo da base.
cRetDiagnóstico passado por referência.
Lógico da comparação; cRet pode receber diagnóstico por referência.
#Include "Protheus.ch"
User Function Ed392()
Local jBase := JsonObject():New()
Local jComparado := JsonObject():New()
Local cDiferencas := ""
// JSONs fixos validos; apenas a ordem das propriedades difere.
jBase:FromJson('{"code":"A","qty":2}')
jComparado:FromJson('{"qty":2,"code":"A"}')
ConOut(cValToChar(framework.types.json.Compare(jBase,jComparado,@cDiferencas)))
FreeObj(jBase)
FreeObj(jComparado)
Return NilVerdadeiro no ambiente compatível; ordem das propriedades não muda esse conteúdo. Em revisão: exemplo editorial não compilado nem executado em Protheus. Conferir includes, release, RDD e contexto antes de homologar.
© 2026 Usina.BR. Todos os direitos reservados. TOTVS, Protheus, Microsiga e seus respectivos logotipos são marcas de seus titulares. O AdvPL Guia é independente e utiliza citações limitadas, atribuídas e justificadas por finalidade educativa. Consulte os Termos de Uso. Termos de Uso
Comentários
Ainda não há comentários aprovados.
Entre com Google ou Microsoft para comentar.