何が問題を引き起こしているのか100%はわかりませんが、うまくいけばあなたを道に導く解決策を提供しようとします。
GitHubにはMLJSON(https://github.com/marklogic/mljson/wiki)と呼ばれるオープンソースプロジェクトがあります。JSON文字列を受け取り、それを解析して、MarkLogicが簡単に利用できるXMLドキュメントを返すことができます。
XMLの内部構造を理解することが魅力的でない場合(かなり単純ですが、文書化されていません)、プロジェクトには、解析されたJSON文書からビットを抽出するためのパスパーサーも含まれています。これは、POSTまたはGETパラメーターとしてサーバーに送信されたJSONを取得し、それを解析して値を引き出す簡単なサンプルXQueryページです。
xquery version "1.0-ml";
import module namespace json="http://marklogic.com/json" at "lib/json.xqy";
import module namespace path="http://marklogic.com/mljson/path-parser" at "lib/path-parser.xqy";
let $jsonString := xdmp:get-request-field("json")
let $jsonXML := json:parse($jsonString)
let $firstName := path:select($jsonXML, "author.firstName", "json")
return concat("First name: ", $firstName)
上記のスクリプトが渡された場合、次のようなJSONドキュメントが渡されます。
{
"author": {
"firstName": "Noam",
"lastName": "Chomsky"
}
}
文字列「Firstname:Noam」が返されます。
MLJSONには、ここでは説明しませんが、JSONオブジェクトや配列などを構築し、それらをJSON文字列としてシリアル化する機能があることを説明します。
お役に立てば幸いです。