Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Comentário: Alterado data de lançamento

...

Obs.: A função aceita como argumento arrays de JSONOs dois primeiros argumentos devem ter o mesmo tipo de variável (JSON & JSON ou Array & Array).

...

  • Por conta de um comportamento padrão da JsonObject, não recomendamos utilizar o formato JSON array (ex.: [{}, {}]), somente JSON object (ex.: { "a": {}, "b": [] });
  • Caso seja necessário comparar arrays de JSON, recomendamos nomear o array (ex.: { "meuArray": [{}, {}] }) e passar o objeto nomeado no parâmetro da função (ex.: oMeuJson["meuArray"]
  • Disponível à partir da LIB versão 2021062820210809 ou superior;
  • Essa função só funciona em binários com suporte a TLPP.

...

Bloco de código
languagejs
themeMidnight
titleExemplo FwJsonCompare
linenumberstrue
#Include "protheus.ch"

User Function MyJsonCompare()
	Local lRet As Logical
	Local cRet As Character
	Local cJsonOne As Character
	Local cJsonTwo As Character
	Local oJson1jJson1 := JsonObject():New()
	Local oJson2jJson2 := JsonObject():New()

	cJsonOne := '{"propriedade": "valor","array":[{"valor1": true},{"valor2": true}]}'
	cJsonTwo := '{"propriedade": "valor","array":[{"valor1": true},{"valor2": false}]}'

	oJson1jJson1:FromJson(cJsonOne)
	oJson2jJson2:FromJson(cJsonTwo)

	lRet := FwJsonCompare(oJson1jJson1, oJson2jJson2, @cRet)

	If !lRet
		ConOut(cRet) // Resultado: array[2]=> Item at position 2 of aArray1 not found in aArray2.
	EndIf

	FreeObj(oJson1jJson1)
	FreeObj(oJson2jJson2)

Return Nil