Thyago,
A propriedade DADOS
do seu JSON
é um array de objetos, logo, você vai ter um array com diversos JsonObject
.
Existem inúmeras formas de criar um array de objetos (JsonObject), abaixo alguns exemplos de como pode ser feito:
// ----------------------------------------------------------------------
/*/{Protheus.doc} u_jsonArray
Exemplo de JsonObject com array
@author Daniel Mendes
@since 25/05/2021
@version 1.0
/*/
// ----------------------------------------------------------------------
function u_jsonArray()
local jJson as json
local jJsonData as json
local nI as numeric
local aDados as array
//Exemplo 1
jJson := JsonObject():new()
jJson["STATUS"] := "true" //Isso aqui poderia ser um .T. para ficar como um tipo boolean
jJson["ERRO"] := "Deu certo"
jJson["DADOS"] := {}
jJsonData := JsonObject():new()
jJsonData["DATAINI"] := Date()
jJsonData["DATAFIM"] := Date() + 1
aAdd(jJson["DADOS"], jJsonData)
jJsonData := JsonObject():new()
jJsonData["DATAINI"] := Date() + 2
jJsonData["DATAFIM"] := Date() + 3
aAdd(jJson["DADOS"], jJsonData)
jJsonData := JsonObject():new()
jJsonData["DATAINI"] := Date() + 4
jJsonData["DATAFIM"] := Date() + 5
aAdd(jJson["DADOS"], jJsonData)
ConOut( jJson:toJson(), "" ) //{"STATUS":"true","DADOS":[{"DATAINI":"2021/05/25","DATAFIM":"2021/05/26"},{"DATAINI":"2021/05/27","DATAFIM":"2021/05/28"},{"DATAINI":"2021/05/29","DATAFIM":"2021/05/30"}],"ERRO":"Deu certo"}
//Exemplo 2
jJson := JsonObject():new()
jJson["STATUS"] := "true" //Isso aqui poderia ser um .T. para ficar como um tipo boolean
jJson["ERRO"] := "Deu certo"
jJson["DADOS"] := {}
for nI := 1 to 3
aAdd(jJson["DADOS"], JsonObject():new())
jJson["DADOS"][nI]["DATAINI"] := Date() + nI
jJson["DADOS"][nI]["DATAFIM"] := Date() + nI + 1
next
ConOut( jJson:toJson(), "" ) //{"STATUS":"true","DADOS":[{"DATAINI":"2021/05/26","DATAFIM":"2021/05/27"},{"DATAINI":"2021/05/27","DATAFIM":"2021/05/28"},{"DATAINI":"2021/05/28","DATAFIM":"2021/05/29"}],"ERRO":"Deu certo"}
//Exemplo 3
jJson := JsonObject():new()
jJson["STATUS"] := "true" //Isso aqui poderia ser um .T. para ficar como um tipo boolean
jJson["ERRO"] := "Deu certo"
aDados := {JsonObject():new(), JsonObject():new(), JsonObject():new()}
aDados[1]["DATAINI"] := Date()
aDados[1]["DATAFIM"] := Date() + 1
aDados[2]["DATAINI"] := Date() + 2
aDados[2]["DATAFIM"] := Date() + 3
aDados[3]["DATAINI"] := Date() + 4
aDados[3]["DATAFIM"] := Date() + 5
jJson["DADOS"] := aDados
ConOut( jJson:toJson(), "" ) //{"STATUS":"true","DADOS":[{"DATAINI":"2021/05/25","DATAFIM":"2021/05/26"},{"DATAINI":"2021/05/27","DATAFIM":"2021/05/28"},{"DATAINI":"2021/05/29","DATAFIM":"2021/05/30"}],"ERRO":"Deu certo"}
//Exemplo 4
jJson := JsonObject():new()
jJson["STATUS"] := "true" //Isso aqui poderia ser um .T. para ficar como um tipo boolean
jJson["ERRO"] := "Deu certo"
aDados := {}
for nI := 1 to 3
aAdd(aDados, JsonObject():new())
aDados[nI]["DATAINI"] := Date() + nI
aDados[nI]["DATAFIM"] := Date() + nI + 1
next
jJson["DADOS"] := aDados
ConOut( jJson:toJson() ) //{"STATUS":"true","DADOS":[{"DATAINI":"2021/05/26","DATAFIM":"2021/05/27"},{"DATAINI":"2021/05/27","DATAFIM":"2021/05/28"},{"DATAINI":"2021/05/28","DATAFIM":"2021/05/29"}],"ERRO":"Deu certo"}
return