Estou começando a utilizar classes Json no protheus e observei um comportamento que achei estranho. Se eu criar um objeto Json com algumas propriedades, e eu tentar acessar uma propriedade que não existe neste objeto o sistema não apresenta qualquer erro. No meu caso foi um erro de digitação mesmo, então fiquei tentando achar o erro até ver que havia errado uma letra, no meu entendimento o sistema deveria apresentar um erro ao tentar ler uma propriedade que não existe assim como um objeto convencional, isso traria muito mais confiabilidade para o sistema.
Existe algum motivo para esse comportamento? No meu pouco entendimento desse objeto considero isso um defeito.
Abaixo um pequeno exemplo do que estou falando:
Local oTempJson := JsonObject():New() AS Json
//Aqui normal entendo que estou criando as propriedades
oTempJson['prop1'] := 'teste'
oTempJson['prop2'] := 'teste2'
//agora vou acessá-las
conout(ValType(oTempJson['prop1'])) //tudo certo!
conout(ValType(oTempJson['porp2'])) //aqui apresenta NULL, deveria dar errolog