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_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 the
jsonStrvalue from each record to an HTTP endpoint.
1. import "http"
2. import "json"
4. from(bucket: "noaa")
5. |> filter(fn: (r) => r._measurement == "average_temperature")
6. |> mean()
7. |> map(fn: (r) => ({r with jsonStr: string(v: json.encode(v: {"location": r.location, "mean": r._value}))}))
8. |> map(
9. fn: (r) => ({
10. r with
11. status_code: http.post(
12. url: "http://somehost.com/",
13. headers: {x: "a", y: "b"},
14. data: bytes(v: r.jsonStr)
15. )
16. })
17. )
