#include "protheus.ch"
/* Exemplo de criação de Json com Array na Raiz e array em propriedades.
[
{"key":"Key1","name":"Nome1","value":"Value1","source":"Source1"},
{"key":"Key2","name":"Nome2","value":"Value2","source":"Source2"},
{"key":"Key3","name":"Nome3","value":"Value3","source":"Source3"},
{"key":"Key4","name":"Nome4","value":"Value4","source":"Source4"},
{"key":"Key5","name":"Nome5","value":"Value5","source":"Source5","SampleArray":[{"sample":"sample 1"},
{"sample":"sample 2"},
{"sample":"sample 3"},
{"sample":"sample 4"},
{"sample":"sample 5"}]}
]
*/
user function uTstSetJOb()
Local aJson := {}
local aLast := {}
local wrk
local nItens := 5
local i
wrk := JsonObject():new()
For i := 1 to nItens
Aadd(aJson,JsonObject():new())
nPos := Len(aJson)
aJson[nPos]['name' ] := 'Nome'+cValtoChar(i)
aJson[nPos]['value' ] := 'Value'+cValtoChar(i)
aJson[nPos]['key' ] := 'Key'+cValtoChar(i)
aJson[nPos]['source' ] := 'Source'+cValtoChar(i)
Next
for i:= 1 to nItens
Aadd(aLast,JsonObject():new())
aLast[i]['sample'] := 'sample ' + cValtoChar(i)
next
aJson[Len(aJson)]['SampleArray'] := aLast //Cria uma propriedade do tipo array no ultimo elemento
wrk := JsonObject():new()
wrk:set(aJson) //Será Inserido Array na Raiz do documento (Somente Array ou JsonObject deve ser informado no parametro)
conout(Len(wrk)) //Imprime a contagem de elementos
conout(wrk:toJSON()) //Imprime Json
return
|