On 10.11.2021 19:34, Jonathan Robie wrote:
I want to serialize JSON.  Consider the following function:

declare function local:index()
{
  array{ $levinsohn/levinsohn/feature/header ! map {./name :
./description ! string() } }
};

When I run that, I get output that looks like this:

[map {
   "Ambiguous": "Marked but ambiguous constituent order."
}, map {
   "annotations": "Inline annotations."
}
!!! SNIP !!!]

That won't work as output in a REST API, so I want to serialize that
without the map keyword.  I tried to use fn:serialize():

declare function local:index()
{
  array{ $levinsohn/levinsohn/feature/header ! map {./name :
./description ! string() } } ! serialize(.)
};

That gave me this error:

    items of type map(*) cannot be serialized


So ... what's the right way to do this?

I would use

  serialize(local:index(), map { 'method' : 'json' })

to serialize the whole array as JSON

Reply via email to