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: general-boun...@developer.marklogic.com [general-boun...@developer.marklogic.com] on behalf of Florent Georges [li...@fgeorges.org] 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, "general-boun...@developer.marklogic.com<mailto:general-boun...@developer.marklogic.com> on behalf of Florent Georges" <general-boun...@developer.marklogic.com<mailto:general-boun...@developer.marklogic.com> on behalf of li...@fgeorges.org<mailto:li...@fgeorges.org>> 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 >General@developer.marklogic.com<mailto:General@developer.marklogic.com> >Manage your subscription at: >http://developer.marklogic.com/mailman/listinfo/general _______________________________________________ General mailing list General@developer.marklogic.com<mailto:General@developer.marklogic.com> Manage your subscription at: http://developer.marklogic.com/mailman/listinfo/general
_______________________________________________ General mailing list General@developer.marklogic.com Manage your subscription at: http://developer.marklogic.com/mailman/listinfo/general