Convert results to JSON
This example uses NOAA water sample data.
Send each record to a URL endpoint using the HTTP POST method. This example uses json.encode()
to convert a value into JSON bytes, then uses http.post()
to send them to a URL endpoint.
The following query: - Uses filter()
to filter the average_temperature
measurement. - Uses mean()
to calculate the average value from results. - Uses map()
to create a new column, jsonStr
, and build a JSON object using column values from the query. It then byte-encodes the JSON object and stores it as a string in the jsonStr
column. - Uses http.post()
to send the jsonStr
value from each record to an HTTP endpoint.
import "http"
import "json"
from(bucket: "noaa")
|> filter(fn: (r) => r._measurement == "average_temperature")
|> mean()
|> map(fn: (r) => ({ r with
jsonStr: string(v: json.encode(v: {"location":r.location,"mean":r._value}))}))
|> map(fn: (r) => ({r with
status_code: http.post(
url: "http://somehost.com/",
headers: {x:"a", y:"b"},
data: bytes(v: r.jsonStr)
)
}))