docs-v2/content/influxdb/v2/process-data/common-tasks/convert_results_to_json.md

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.
influxdb_v2
name parent
Convert results to JSON Common tasks
203
tasks

{{% 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 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)
            )
        })
    )