Hi, Florent: Much the way JavaScript objects turn into json:object values in XQuery, JavaScript arrays turn into json:array values in XQuery.
When appropriate, you can use json:array-values() to convert a json:array value to a sequence. Hoping that helps, Erik Hennum ________________________________ From: [email protected] [[email protected]] on behalf of Florent Georges [[email protected]] Sent: Friday, June 16, 2017 2:40 PM To: MarkLogic Developer Discussion Subject: Re: [MarkLogic Dev General] Accessing properties of in-memory JS object in XQuery Hi Geert, I was mot expecting Europe to still answer at this time, but that was counting without you ;-) Thank you, it works indeed as a charm. But it seems I oversimplified my example. The problem actually comes from the fact that the value is an array of objecst, and just iterating over it like a sequence of items does not work. This modified example gives this extra complexity: xdmp.xqueryEval( `declare variable $obj external; $obj ! map:get(., 'name')`, { obj: [{ name: 'name', title: 'title' }] }); Regards, -- Florent Georges H2O Consulting http://h2o.consulting/ On 16 June 2017 at 23:18, Geert Josten wrote: It is a json:object (the map:map specialization).. Try: xdmp.xqueryEval( 'declare variable $obj external; map:get($obj, "name")', { obj: {name: 'name', title: 'title' }}); Cheers, Geert On 6/16/17, 9:27 PM, "[email protected]<mailto:[email protected]> on behalf of Florent Georges" <[email protected]<mailto:[email protected]> on behalf of [email protected]<mailto:[email protected]>> wrote: >Hi, > >I have an SJS script that calls a function from an XQuery library. It >passes a JS object to the function. The function needs to access the >value of one property of the object (in this case, a string). > >I can't find in the documentation how XQuery code can navigate through >the properties of an in-memory JS object. Any idea? > >A self-contained example (my code require() an XQuery library and >calls a function instead of using code evaluation, but the issue is >the same): > > xdmp.eval( > `declare variable $obj as external; > $obj ! xs:string(name)`, > { name: 'name', title: 'title' }); > >I am using ML 9. > >Regards, > >-- >Florent Georges >H2O Consulting >http://h2o.consulting/ >_______________________________________________ >General mailing list >[email protected]<mailto:[email protected]> >Manage your subscription at: >http://developer.marklogic.com/mailman/listinfo/general _______________________________________________ General mailing list [email protected]<mailto:[email protected]> Manage your subscription at: http://developer.marklogic.com/mailman/listinfo/general
_______________________________________________ General mailing list [email protected] Manage your subscription at: http://developer.marklogic.com/mailman/listinfo/general
