Versão atual:

Qual a diferença de inicializar uma variável local com `Local jDadosJson as Json` e `Local jDadosJson := JsonObject():new()`?

Eu estou iniciando agora no mundo do ADVPL e TLPP, gostei bastante do TLPP pois é muito parecido com C# e Spring Boot... Porém como tem pouca documentação, tem algumas coisas que eu estou tendo duvidas.

Essa é uma delas, eu sei que é bem básica e eu acho que é a mesma coisa, mas como percebi que essa linguagem possui algumas peculiaridades, eu gostaria de saber da comunidade...

Tenho o seguinte método @get no código:

Method get() as Logical Class SolicitacaoArmazemController

    // Setar Empresa e Filial no começo do App (Necessário)
    rpcSetEnv(cEmpAnt, cFilAnt)

    ConOut("SolicitacaoArmazemController:get - Coletando os Parametros da Query e do JSON Body")

    Local jParam as Json
    Local jBody := JsonObject():new()

    jParam := oRest:getQueryRequest()

    /* 
    NOTA sobre o Local jBody:

    Atribui o VALOR do PARAMETRO NO JSON enviado no BODY para uma VARIAVEL Local pra printar no Log.
    O JSON enviado de exemplo foi:

    {
        "parametro": "Teste"
    }

    Deve printar "Teste".

    Documentação do Body: https://tdn.totvs.com/display/tec/Body

    */

    jBody:fromJson( oRest:GetBodyRequest() )
    If ( jBody <> Nil)
        cParametroNoJson := jBody:GetJsonText("parametro")
        If ( cParametroNoJson == "null" )
            cParametroNoJson := Nil
        Else
            ConOut("SolicitacaoArmazemController:get - Parametro no JSON: " + cParametroNoJson)
        EndIf
    EndIf

    ConOut("SolicitacaoArmazemController:get - Configurando os Headers e a Response")
    oRest:setKeyHeaderResponse('Content-Type', 'application/json; charset=utf-8')    
    oRest:setResponse(cResponseJson)

    // Resetar a Empresa/Filial e liberar licenças utilizadas.
    rpcClearEnv()

Return .T.

Eu iniciei as variáveis locais jParame jBody de formas diferentes de propósito, pois eu gostaria de saber se ao usar as Json é só uma forma mais direta de fazer JsonObject():new()...

Qual a diferença entre as duas sintaxes? É a mesma coisa?

Versão (1):

Ver a versão formatada

Qual a diferença de inicializar uma variável local com `Local jDadosJson as Json` e `Local jDadosJson := JsonObject():new()`?

Comentário

new question