Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Composition Setup
import.css=/download/attachments/6062824/tecnologia.css

...

Remove a propriedade e seu valor de um

...

JsonObject a partir do nome fornecido.

Sintaxe

Bloco de código
JsonObject:DelName(cNome)

Parâmetros

NomeTipoDescriçãoObrigatórioReferência
cNomecaractereNome da propriedade

...

que será removidaX


Retorno

Nome

Tipo

Descrição

lRet

lógico

...

.T. caso

...

propriedade seja removido com sucesso ou .F. caso haja uma falha na remoção

...

.


Exemplo

Bloco de código
languagecpp
themeEclipse
titleExemplo 1
linenumberstrue
collapsefalse
#include "protheus.ch"

User
user 
Function
function 
tDelName
DNExemplo()
  local oJson
  local ret

 
Local
 oJson := JsonObject():
New
new()
  
Local

  
cJson
ret := oJson:fromJson('{
"title": "example glossary", "name":"John"}' Local cName := "" Local cMsg := "" Local lRet := .F. oJson:fromJson( cJson ) // remove a propriedade de nome 'title' e // exibe 'SUCCESS - JsonObject():DelName( "title" ) returned [.T.]' cName := "title" lRet := oJson:DelName( cName ) cMsg := ' - JsonObject():DelName( "' + cName + '" ) returned [' + cValToChar( lRet ) + ']' If ( lRet ) ConOut( 'SUCCESS' + cMsg ) Else ConOut( 'FAILURE' + cMsg ) EndIf // não remove a propriedade de nome 'NAME' e // exibe 'FAILURE - JsonObject():DelName( "NAME" ) returned [.F.]' cName := "NAME" lRet := oJson:DelName( cName ) cMsg := ' - JsonObject():DelName( "' + cName + '" ) returned [' + cValToChar( lRet ) + ']' If ( lRet ) ConOut( 'SUCCESS' + cMsg ) Else ConOut( 'FAILURE' + cMsg ) EndIf FREEOBJ( oJson ) Return

Observações:

"character":"Joaquim", "json":{"Joao":22, "Joana":33}, "array":[4,12,5], "numeric":23, "logic":false, "nil":null}')

  if ValType(ret) == "U"
    Conout("JsonObject populado com sucesso")
  else
    Conout("Falha ao popular JsonObject. Erro: " + ret)
  endif
  
  u_PrintJson(oJson)

  /*
  Será impresso:
  Label - character
  character = Joaquim
  Label - numeric
  numeric = 23
  Label - logic
  Label - array
  Vetor[
  Indice 1
  4
  Indice 2
  12
  Indice 3
  5
  ]Vetor
  Label - nil
  Label - json
  */

  oJson:DelName("json")

  u_PrintJson(oJson)

  /*
  Label - character
  character = Joaquim
  Label - numeric
  numeric = 23
  Label - logic
  Label - array
  Vetor[
  Indice 1
  4
  Indice 2
  12
  Indice 3
  5
  ]Vetor
  Label - nil
  */
return

user function PrintJson(jsonObj)
  local i, j
  local names
  local lenJson
  local item

  lenJson := len(jsonObj)

  if lenJson > 0
    for i := 1 to lenJson
      u_PrintJson(jsonObj[i])
    next
  else
    names := jsonObj:GetNames()
    for i := 1 to len(names)
      conout("Label - " + names[i])
      item := jsonObj[names[i]]
      if ValType(item) == "C" .or.  ValType(item) == "N"
        conout( names[i] + " = " + cvaltochar(jsonObj[names[i]]))
      else 
        if ValType(item) == "A"
          conout("Vetor[")
          for j := 1 to len(item)
            conout("Indice " + cValtochar(j))
            if ValType(item[j]) == "J"
              u_PrintJson(item[j])
            else
              conout(cvaltochar(item[j]))
            endif
          next j
          conout("]Vetor")
        endif
      endif
    next i
  endif
return


Observações:

O nome da propriedade do objeto JSON fornecido para remoção é sensível à caixa e deverá ser idêntico ao existente no objeto JSON;

Disponível em build igual ou superior a 17.3.0.19

Composition Setup
import.css=/download/attachments/6062824/tecnologia.css



Portuguese