|
Bem Vindo, Visitante
|
Todos os Fórums
ADVPL
|
Imprimir
Enviar Para um Amigo Precisa estar Logado
|
|
|
Assunto: |
Retorno de um Json externo |
|
Versão: |
12.1.33 |
|
Plataforma: |
Microsoft |
Complemento: |
|
|
DB: |
SQL Server |
Complemento: |
|
|
|
|
|
Mensagem do
WANDERSONW
em 29/06/2022, 08:03 h
Local: SP Registro: 01/07/2015 Postagens: 166 |
Bom dia,
Estou precisando da ajuda de você para entender como eu pego o conteúdo de uma coluna em Json, achei este link https://centraldeatendimento.totvs.com/hc/pt-br/articles/360037138634-Cross-Segmento-TOTVS-Backoffice-Linha-Protheus-ADVPL-Classe-JsonObject-onde temos um exemplo:
#include ‘protheus.ch‘
#include ‘parmtype.ch‘
#Include ‘Totvs.ch‘
User Function JSONTST2()
Local oJsonA := Nil
Local oJsonB := Nil
Local cParseRes := ‘‘
Local cJsonStr := ‘‘
Local array := {}
Local array1 := {}
Local array2 := {}
Local nl := 0
cJsonStr:= ‘{"DATA": [{"ID_COMPANY_FK": "5022","COD_ESTAB_PK": "01"}]}‘
oJsonA := JsonObject():new()
cParseRes := oJsonA:fromJson(cJsonStr)
array:= oJsonA:GetNames()
Varinfo("Conteudo oJsonA:GetNames", array)
oJsonB := JsonObject():new()
oJsonB := oJsonA:GetJsonObject(ARRAY[1])
oJsonB[1]:toJSON()
oJsonB[2]:toJSON()
array1:= oJsonB[1]:GetNames()
Varinfo("Conteudo oJsonB[1]:GetNames", array1)
array2:= oJsonB[2]:GetNames()
Varinfo("Conteudo oJsonB[2]:GetNames", array2)
For nL := 1 to len( array1 )
ConOut ( array1[nL] )
Conout ( oJsonB[1]:GetJsonText( array1[nL] ) )
Next nL
For nL := 1 to len( array2 )
ConOut ( array2[nL] )
Conout ( oJsonB[2]:GetJsonText( array2[nL] ) )
Next nL
FreeObj(oJsonA)
FreeObj(oJsonB)
return
Neste exemplo eu consegui pegar apenas o nome das colunas, como faço para pegar o conteúdo delas sabendo que vou ter vários registros por coluna?
|
|
|
Mensagem do
VRTN
em 30/06/2022, 16:16 h
Local: MG Registro: 09/11/2009 Postagens: 191 |
Olá!
Tente o seguinte:
Local cJson As Character
Local jJson As Json
cJson := ‘{"DATA": [{"ID_COMPANY_FK": "5022","COD_ESTAB_PK": "01"}]}‘
jJson := JsonObject():new()
jJson:fromJson(cJson)
For nI := 1 To Len(jJson["DATA"])
conout("ID_COMPANY_FK: " + jJson[nI]["ID_COMPANY_FK"]);
conout("COD_ESTAB_PK: " + jJson[nI]["COD_ESTAB_PK"]);
Next nI
|
|
|
Mensagem do
ALDOBOM
em 01/07/2022, 06:08 h
Local: MG Registro: 09/12/2021 Postagens: 10 |
Eu faço assim meu amigo
cJson := "aqui deve estar o json"
oParser := Nil // private
If FwJsonDeserialize(cJson,@oParser)
// aqui o objeto oParser estará com seu Json completo
Endif
|
|
Para postar no Fórum você precisa efetuar o seu login ou se registrar
|
|