Árvore de páginas

Recupera o valor, e o tipo de uma determinada propriedade do objeto Json.

Sintaxe

JsonObject:GetJsonValue(cPropertyName, @xValue, [@cType] )

Parâmetros

NomeTipoDescriçãoObrigatórioReferência
cPropertyNamecaractereNome da propriedade cujo valor será retornadoX


xValue-Valor da propriedade, o tipo desse dado será o tipo correspondente à propriedade solicitada.         X        X
cTypecaractereParâmetro opcional, caso informado, nele é retornado o tipo do dado de xValue
        X



Retorno

Nome

Tipo

Descrição

lRet

Logico

Retorna verdadeiro se a propriedade foi encontrada e falso caso contrário


Exemplo

user function exemplo_GetJsonValue()

  local cRet  as character
  local oVar  as object 
  local oJson as JsonObject
  local lRet  as logical 

  oJson := JsonObject():new()
  lRet  := .F. 

  cRet := oJson:fromJson('{"aSerDeletadojson":10,"character":"Joaquim", "json":{"Joao":22, "Joana":33}, "array":[4,12,5], "numeric":23,  "logical":false, "nil":null,   "cArr":["Joaquim","Ana","joao"]}')
  if cRet != NIL // Nao criou o Json, entao o teste todo deu errado
      Conout ("Erro ao criar o objeto json")
      return NIL 
  endif

  oJson['decimal' ] := DEC_Create(10,2,1)
  oJson['integer' ] := 32
  oJson['date' ] := Date()
  oJson['variant' ] := NIL
  oJson['codeblock' ] := { | a, b | a * b }


  lret := oJson:GetJsonValue("character", @keyVal, @keyType)
  Conout (lRet, keyVal, keyType)  // .T. Joaquim C

  lret := oJson:GetJsonValue("numeric", @keyVal, @keyType)
  Conout (lRet, keyVal, keyType) // .T. 23 N

  lret := oJson:GetJsonValue("logical", @keyVal, @keyType)
  Conout (lRet, keyVal  ,keyType) // .T. .F. L
 
  
  lret := oJson:GetJsonValue("cArr", @keyVal,  @keyType)
  Conout (lRet, keyVal, keyType, len(keyVal), keyVal[3])
 
  lret := oJson:GetJsonValue("nil", @keyVal,  @keyType)
  Conout (lRet, keyVal, keyType)

  lret := oJson:GetJsonValue("json", @keyVal,  @keyType)
  Conout (lRet, keyVal, keyType, keyVal["Joao"])
 
 
  lret := oJson:GetJsonValue("array", @keyVal,  @keyType)
  Conout (lRet, keyVal, keyType,  len(keyVal), keyVal[2])

  lret := oJson:GetJsonValue("decimal", @keyVal,  @keyType)
  Conout (lRet, keyVal, keyType)

  lret := oJson:GetJsonValue("integer", @keyVal,  @keyType)
  Conout (lRet, keyVal, keyType)

  lret := oJson:GetJsonValue("date", @keyVal,  @keyType)
  Conout (lRet, keyVal, keyType)

  lret := oJson:GetJsonValue("codeblock", @keyVal,  @keyType)
  Conout (lRet, keyVal, keyType)

  lret := oJson:GetJsonValue("balbalbal", @keyVal, @keyType)
  Conout (lRet, keyVal, keyType) // .F. NIL NIL 



return


Observações:

Disponível em build igual ou superior a 19.3.7.0

  • Sem rótulos