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

Veja também