json:set-item-at

json:set-item-at(
   $array as json:array,
   $pos as xs:double,
   $value as item()*
) as empty-sequence()

Summary

Sets a value in an array at a specified position.

Parameters
array An array.
pos The position to update. Invalid positions throw XDMP-ARRAYINDEXOUTOFBOUNDS
value A value. Empty sequences are allowed.

Example

let $array := json:to-array( ("a","b","c"), 5 )
let $put := json:set-item-at($array, 5 , <info>45683</info>)
return
<result>{$array}</result>

=>
<result>
  <json:array xmlns:json="http://marklogic.com/xdmp/json">
    <json:value xsi:type="xs:string">a</json:value>
    <json:value xsi:type="xs:string">b</json:value>
    <json:value xsi:type="xs:string">c</json:value>
    <json:value xsi:nil="true"/>
    <json:value><info>45683</info></json:value>
  </json:array>
</result>

Example

xquery version "1.0-ml";

let $array := json:to-array(("a", "z", "c"))
return (
    $array[2],
    json:set-item-at($array, 2, "b"),
    $array[2]
    )
=>
z
b

Powered by MarkLogic Server | Terms of Use | Privacy Policy