JsonArray
Array JSON nativo TLPP. Complementa JsonObject — JsonArray representa lista, JsonObject representa dicionario.
Assinatura: oArr := JsonArray():New() // :Add(x), :Get(n), :Size(), :ToJson(), :FromJson(s)
Retorna: JsonArray object
JsonArray e a contraparte do JsonObject pra arrays. Em JSON, {} = JsonObject, [] = JsonArray. Usar tipo errado quebra parsing/serializacao.
#include "tlpp-core.th"
User Function MontaArray()
Local oArr := JsonArray():New()
oArr:Add("primeiro")
oArr:Add(42)
oArr:Add(.T.)
Local oItem := JsonObject():New()
oItem["nome"] := "Produto X"
oItem["valor"] := 99.90
oArr:Add(oItem)
ConOut(oArr:ToJson())
// ["primeiro",42,true,{"nome":"Produto X","valor":99.9}]
Return
Parseando JSON
Local oArr := JsonArray():New()
oArr:FromJson('[{"id":1,"nome":"A"},{"id":2,"nome":"B"}]')
ConOut(oArr:Size()) // 2
ConOut(oArr:Get(1)["nome"]) // "A"
For i := 1 To oArr:Size()
ConOut(oArr:Get(i)["nome"])
Next
Pegadinhas
- Indice 1-base — Get(1) e primeiro elemento, nao Get(0).
- FromJson em string mal formada retorna .F./erro — sempre cheque.
- Pra API REST sempre use JsonObject + JsonArray, nunca string concat.