I should have been clearer. jq is a programming language, but it's also a data language in that a) valid JSON is a valid jq program, b) you can construct JSON data trivially with jq.
E.g.,
: ; jq -n '
.users[0].name="John"
| .users[1].name="Jane"
'
or : ; jq -n '
.users = []
| .users += [{}|.name = "John"]
| .users += [{}|.name = "Jane"]
'
but you can make it much much richer than that.