2016-05-17 27 views
6

MarkLogicのXQueryにJSONノードを構築する必要があります。 xdmp:unquote()を使用して文字列を解析してnode()にすることができます。しかし、醜い文字列の連結をせずに、JSONをプログラムで構築したいと思います。 computed element constructorsを使用して、XQueryでXMLノードを構築できます。 JSONノードに似たものがありますか?MarkLogicでXQueryでJSONをプログラムで作成するにはどうすればよいですか?

+0

一般的なXQueryの質問よりもはるかにMarkLogicの質問です。 BaseXはこれとは違う方法でこれをしました。 –

+0

ありがとう。私はこれを反映するためにタイトルと説明を更新しました。 –

答えて

8

JSONは、MarkLogicでXMLデータモデルの拡張機能として実装されています。 MarkLogic 8は、object-node,array-node,number-node,boolean-node、およびnull-nodeのテストとコンストラクタを導入しています。したがって、XQueryでは、XMLと同じように、計算コンストラクタを使用してJSONを構築できます。例えば、

object-node { 
    "key" || fn:string(xdmp:random(100)): array-node { 1, 2, 3 }, 
    "another": object-node { "child": text {'asdf'} }, 
    "lastButNotLeast": boolean-node { fn:true() } 
} 

は別に、

{ 
    "key47": [1, 2, 3], 
    "another": { 
    "child": "asdf" 
    }, 
    "lastButNotLeast": true 
} 

をJSONを作成します。JavaScriptでは、あなたは、JavaScriptの構文を使用して、JavaScriptオブジェクトとしてJSONのような構造を構築することができます。 xdmp.toJSON()を使用してJavaScriptオブジェクトをJSONノードに変換できます。ただし、JSONノードを必要とする組み込み関数のほとんどは、xdmp.documentInsert()のようにこの変換を自動的に行います。

関連する問題