1.8 KiB
1.8 KiB
| title | seotitle | description | menu | weight | influxdb/v2/tags | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Convert results to JSON | Convert results to JSON and send them to a URL | Use `json.encode()` to convert query results to JSON and `http.post()` to send them to a URL endpoint. |
|
203 |
|
{{% note %}} This example uses NOAA water sample data. {{% /note %}}
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 theaverage_temperaturemeasurement. - 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 thejsonStrcolumn. - Uses
http.post()to send thejsonStrvalue 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)
)
})
)