Every format you'll meet
JSON, XML, CSV, YAML, Protobuf, Avro, Parquet, flat file, COBOL copybook and EDI.
GoWeave gives you a concise, functional transformation language for JSON, XML, CSV and more.
A concise, expression-based language for JSON, XML and CSV, with functions such as map, filter, reduce, groupBy, orderBy, distinctBy, pluck, flatten, joinBy, splitBy and when/otherwise.
Existing transformation scripts from legacy integration products are converted to native code automatically, so your transformation logic survives migration.
How migration worksoutput application/json --- payload.orders filter ((o) -> o.status == "SHIPPED") groupBy ((o) -> o.region) mapObject ((orders, region) -> { (region): { count: sizeOf(orders), total: orders reduce ((o, acc = 0) -> acc + o.amount), customers: orders distinctBy $.customer map $.customer } })
// GoWeave output json --- payload.orders | filter(o => o.status == "SHIPPED") | groupBy(o => o.region) | mapObject((orders, region) => { (region): { count: sizeOf(orders), total: orders | reduce((o, acc = 0) => acc + o.amount), customers: orders | distinctBy(o => o.customer) | pluck("customer") } })
{
"EMEA": {
"count": 2,
"total": 1840.5,
"customers": ["C-1001", "C-1042"]
},
"APAC": {
"count": 1,
"total": 615.0,
"customers": ["C-2007"]
}
}
Paste sample input, define input and output schemas, and watch the output update as you type.
JSON, XML, CSV, YAML, Protobuf, Avro, Parquet, flat file, COBOL copybook and EDI.
XPath, XQuery, XSLT, JSONPath and JMESPath, plus JSON Schema, XSD and OpenAPI validation.
Mustache and parse-template support for generating documents and messages.
Read in one format, write in another, and validate along the way, all compiled into your Go microservice.
See GoWeave in a demoBook a 30-minute demo, or send us one existing integration project for a free conversion report.