2011-09-22 4 views
1

그래서 jQuery 플러그인 (jsonp)을 사용하여 API를 교차 도메인 호출하고 JSON 데이터를 다시 가져옵니다. 어떻게 든이 데이터를 내 XQuery 페이지로 가져와야합니다. 나는 모든 XML 데이터를 저장하기 위해 Marklogic 서버를 사용하고 있으며 JSON 데이터를 처리하는 XDMP 함수가 있다는 것을 알고있다. JSON을 자바 스크립트에서 XQuery로 가져오고있어 고통 스럽다.XQuery에서 JSON 사용하기 페이지

이 문제를 해결하는 방법에 대한 아이디어가 있으십니까?

답변

3

나는 당신에게 문제가 무엇인지 확신하지는 않지만 잘하면 당신을 얻을 수있는 해결책을 제시하려고합니다.

GitHub에는 MLJSON (https://github.com/marklogic/mljson/wiki)이라는 오픈 소스 프로젝트가 있습니다. JSON 문자열을 가져 와서 구문 분석하고 MarkLogic에서 쉽게 사용할 수있는 XML 문서를 반환 할 수 있습니다.

XML의 내부 구조를 이해하는 것이 매력적이지 않은 경우 (상당히 간단하지만 문서화되지 않음) 프로젝트는 파싱 된 JSON 문서에서 비트를 추출하는 경로 파서도 포함합니다. 위의 스크립트는 같은 JSON 문서를 전달하면

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) 

: 여기에 POST로 서버에 전송 일부 JSON을하거나 매개 변수를 GET, 그것을 분석하고 값을 끌어 빠른 샘플 XQuery를 페이지의

{ 
    "author": { 
     "firstName": "Noam", 
     "lastName": "Chomsky" 
    } 
} 

"First name : Noam"문자열을 반환합니다.

MLJSON에는 여러 가지 다른 기능이 있지만 여기서 다루지는 않겠지 만 JSON 객체, 배열 등을 구성하고 JSON 문자열로 직렬화하는 기능을 가지고 있습니다.

희망이 있습니다.

+0

나는 그것을 시도해야 할 것이다. 나는 전에 mljson을 보았지만 그것에 대해서는 확신하지 못했습니다. 도와 주셔서 감사합니다. – bjo

+0

내기를 걸었습니다. MLJSON에 문제가 생기거나 질문이 있으시면 GitHub (프로젝트의 주요 개발자)에게 문제를 제기하십시오. –

관련 문제