2016-05-17 6 views
6

मुझे मार्कलॉगिक में XQuery में एक JSON नोड बनाने की आवश्यकता है। मुझे पता है कि मैं एक स्ट्रिंग से node() में पार्स करने के लिए xdmp:unquote() का उपयोग कर सकता हूं। हालांकि, मैं बदसूरत स्ट्रिंग concatenation के बिना, JSON प्रोग्रामेटिक रूप से निर्माण करना चाहता हूँ। मैं XQuery में एक्सएमएल नोड्स बनाने के लिए computed element constructors का उपयोग कर सकता हूं। क्या JSON नोड्स के लिए कुछ समान है?मार्कलॉगिक में XQuery में प्रोग्रामेटिक रूप से जेएसओएन कैसे बना सकता हूं?

+0

एक सामान्य XQuery प्रश्न से अधिक मार्कलॉगिक प्रश्न। जिस तरह से यह किया गया, कहें, बेसएक्स अलग होगा। –

+0

यूप। धन्यवाद। मैंने इसे प्रतिबिंबित करने के लिए शीर्षक और विवरण अपडेट किया है। –

उत्तर

8

JSON को XMLLogic में XML डेटा मॉडल के विस्तार के रूप में कार्यान्वित किया गया है। मार्कलोगिक 8 object-node, array-node, number-node, boolean-node, और null-node परीक्षण और निर्माता प्रस्तुत करता है। इस प्रकार, XQuery में आप जेएसओएन को कंप्यूटर्ड कन्स्ट्रक्टर के साथ बना सकते हैं, जैसे आप एक्सएमएल के साथ करेंगे। उदाहरण के लिए,

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

JSON, एक तरफ पैदा करेगा

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

: जावास्क्रिप्ट में आप जावास्क्रिप्ट सिंटैक्स का उपयोग JavaScript ऑब्जेक्ट के रूप JSON जैसी संरचनाएं बना सकते हैं। आप xdmp.toJSON() का उपयोग कर एक जावास्क्रिप्ट ऑब्जेक्ट को JSON नोड में परिवर्तित कर सकते हैं। अधिकांश अंतर्निहित फ़ंक्शंस जिन्हें JSON नोड की आवश्यकता होती है, हालांकि, यह रूपांतरण स्वचालित रूप से करेगा, जैसे कि xdmp.documentInsert()

संबंधित मुद्दे