Histórico da Página
...
Obs.: A classe JsonObject diferencia propriedades com nome maiúsculo das minúsculas. Por isso uma comparação entre JSONs com diferença de caixa irá resultar em diferenças pela função.
Parâmetros
Nome | Tipo | Descrição | Default | Obrigatório |
---|---|---|---|---|
jJsonObject1 | JSON/Array | JSON base da comparação | Sim | |
jJsonObject2 | JSON/Array | JSON a ser comparado | Sim | |
cRet | Caractere | Variável de referência das mensagens de erros | Nil | Não |
Obs.: A função aceita como argumentos arrays do tipo JSON. Os dois primeiros argumentos devem ter o mesmo tipo de variável (JSON & JSON ou Array & Array).
...
lRet JSONs iguais ou não.
Observações
- Por conta de um comportamento padrão da JsonObject, não recomendamos utilizar JSON array (ex.: [{}, {}]), somente JSON object (ex.: { "a": {}, "b": [] });
- Disponível à partir da LIB versão 20210517 ou superior.
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
#Include "protheus.ch"
User Function MyJsonCompare()
Local lRet As Logical
Local cRet As Character
Local cJsonOne As Character
Local cJsonTwo As Character
Local oJson1 := JsonObject():New()
Local oJson2 := JsonObject():New()
cJsonOne := '{"propriedade": "valor","array":[{"valor1": true},{"valor2": true}]}'
cJsonTwo := '{"propriedade": "valor","array":[{"valor1": true},{"valor2": false}]}'
oJson1:FromJson(cJsonOne)
oJson2:FromJson(cJsonTwo)
lRet := FwJsonCompare(oJson1, oJson2, @cRet)
If !lRet
ConOut(cRet) // Resultado: array[2]=> Item at position 2 of aArray1 not found in aArray2.
EndIf
FreeObj(oJson1)
FreeObj(oJson2)
Return Nil |
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas