Use reduce() to construct a JSON object
Use the reduce() function to create a
JSON object to include as the body with http.post().
Import both the
arraypackage to query data and construct a table, and thehttppackage to transfer JSON over HTTP.Use
array.from()to query data and construct a table, or use another method to query data with Flux.Use the
reduce()function to construct a JSON object, and then useyield()to store the output ofreduce(). This table looks like:field tag example-field:["3"4"1{example-tag-key:["bar"bar"barUse the
map()function to combine the two columns into a JSON object, and then use a secondyield()function to store this object asfinal JSON. This table looks like:field tag final example-field:["3"4"1{example-tag-key:["bar"bar"bar{example-tag-key:["bar"bar"bar] , example-field:["3"4"1]}Use the
findRecord()function to extract the value from thefinalcolumn, the JSON.Use
http.post()to specify a URL to send the JSON to. This example uses Post Test Server as the URL to send the JSON to and test thehttp.post()function.
import "array"
import "http"
data = array.from(
rows: [
{_time: 2020-01-01T00:00:00Z, _field: "example-field", _value: 3, foo: "bar"},
{_time: 2020-01-01T00:01:00Z, _field: "example-field", _value: 4, foo: "bar"},
{_time: 2020-01-01T00:02:00Z, _field: "example-field", _value: 1, foo: "bar"},
],
)
|> reduce(
fn: (r, accumulator) => ({tag:accumulator.tag + "\"" + r.foo,
field : accumulator.field + "\"" + string(v:r._value)
}),
identity: {tag: "{example-tag-key:[",
field: "example-field:[" }
)
|> yield(name: "output of reduce")
|> map(fn: (r) => ({ r with tag: r.tag + "]" }))
|> map(fn: (r) => ({ r with field: r.field + "]}" }))
|> map(fn: (r) => ({ r with final: r.tag + " , " + r.field}))
|> yield(name: "final JSON")
|> findRecord(
fn: (key) => true,
idx: 0,
)
http.post(
url: "https://ptsv2.com/t/c4x38-1656014222/post",
headers: {"Content-type": "application/json"},
data: bytes(v: data.final),
)Was this page helpful?
Thank you for your feedback!
Support and feedback
Thank you for being part of our community! We welcome and encourage your feedback and bug reports for Flux and this documentation. To find support, use the following resources:
Customers with an annual or support contract can contact InfluxData Support.