के माध्यम से साझा करें


JSON फलन

इस पर लागू होता है: कैनवास ऐप्लिकेशन Copilot Studio मॉडल-चालित ऐप्स, Power Platform, CLI Dataverse फ़ंक्शंस , Power Pages

किसी तालिका, रिकॉर्ड या मान के लिए कोई JSON पाठ स्ट्रिंग जनरेट करता है.

वर्णन

JSON फ़ंक्शन जावास्क्रिप्ट ऑब्जेक्ट नोटेशन ()JSON डेटा संरचना का पाठ के रूप में प्रतिनिधित्व देता है ताकि यह नेटवर्क में संग्रहीत या संचारित करने के लिए उपयुक्त हो। [ECMA-404](https://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf और IETF RFC 8259 प्रारूप का वर्णन करते हैं, जिसका व्यापक रूप से JavaScript और अन्य प्रोग्रामिंग भाषाओं द्वारा उपयोग किया जाता है।

कैनवास ऐप्स उन डेटा प्रकारों का समर्थन करता है, जो इस तालिका में उनके पाठ प्रस्तुतिकरण के साथ सूचीबद्ध हैं:

डेटा प्रकार वर्णन परिणाम उदाहरण
बूलियन सत्य या असत्य। true
रंग स्ट्रिंग जिसमें रंग के लिए 8-अंकीय हेक्साडेसिमल प्रस्तुतिकरण शामिल है. यह प्रस्तुतिकरण #rrggbbaa स्वरूप लेता है, जहाँ rr लाल घटक है, gg हरा है, bb नीला है, और aa अल्फा चैनल है. अल्फा चैनल के लिए, 00 पूर्णतः पारदर्शी है, और ff पूर्णतः अपारदर्शी है. आप स्ट्रिंग को ColorValue फ़ंक्शन पर पास कर सकते हैं. "#102030ff"
मुद्रा वह संख्या, जो उपयोगकर्ता की भाषा के लिए उपयुक्त दशमलव विभाजक का उपयोग करती है. यदि आवश्यक हो तो वैज्ञानिक नोटेशन का उपयोग किया जाता है. 1.345
तारीख स्ट्रिंग जिसमें दिनांक ISO 8601 yyyy-mm-dd स्वरूप में शामिल है. "2019-03-31"
दिनांक समय स्ट्रिंग, जिसमें ISO 8601 दिनांक/समय शामिल है. दिनांक/समय मान UTC में हैं, क्योंकि समाप्ति "Z" इंगित करता है. "2019-03-31T22:32:06.822Z"
GUID स्ट्रिंग, जिसमें GUID मान है. अक्षर लोअरकेस हैं. "751b58ac-380e-4a04-a925-9f375995cc40"
छवि, मीडिया यदि JSONFormat.IncludeBinaryData निर्दिष्ट किया गया है, तो मीडिया फ़ाइलें एक स्ट्रिंग में एन्कोड की जाती हैं। http: या https: URL का उपयोग करने वाले वेब संदर्भ संशोधित नहीं किए जाते. इन-मेमोरी बाइनरी डेटा के संदर्भ "data:mimetype;base64,..." स्वरूप द्वारा एन्कोडेड होते हैं. इन-मेमोरी डेटा में वे छवियाँ, जिन्हें उपयोगकर्ता कैमरा नियंत्रण के उपयोग द्वारा कैप्चर करते हैं और appres: और blob: URL योजनाओं वाले कोई भी अन्य संदर्भ शामिल होते हैं. "data:image/jpeg;base64,/9j/4AA..."
संख्या वह संख्या, जो उपयोगकर्ता की भाषा के लिए उपयुक्त दशमलव विभाजक का उपयोग करती है. यदि आवश्यक हो तो वैज्ञानिक नोटेशन का उपयोग किया जाता है. 1.345
विकल्प सेट पसंद का अंकीय मान, प्रदर्शन के लिए उपयोग किए जाने वाले लेबल का नहीं. संख्यात्मक मान का उपयोग किया जाता है क्योंकि यह भाषा निरपेक्ष है. 1001
समय स्ट्रिंग जिसमें एक ISO 8601 hh:mm:ss.fff स्वरूप होता है. "23:12:49.000"
अभिलेख कॉमा डीलिमिटेड सूची, फ़ील्ड और उनके मानों की { और } के बीच की. यह नोटेशन कैनवास ऐप्स में रिकॉर्ड से मिलता-जुलता है, लेकिन नाम हमेशा दोहरे उद्धरण चिह्नों के बीच होता है. यह स्वरूप उन रिकॉर्ड का समर्थन नहीं करता, जो अनेक-से-एक संबंधों पर आधारित हैं. { "First Name": "Fred", "Age": 21 }
मेज़ कॉमा-डीलिमिटेड सूची, रिकॉर्ड की [ और ] के बीच की. यह स्वरूप उन तालिकाओं का समर्थन नहीं करता, जो अनेक-से-एक संबंधों पर आधारित हैं. JSONFormat.FlattenValueTables विकल्प का उपयोग करके Value नामक स्तंभ वाली एकल स्तंभ तालिकाओं के लिए रिकॉर्ड निकालें। [ { "First Name": "Fred", "Age": 21 }, { "First Name": "Jean", "Age": 20 } ]
दो विकल्प दो विकल्प सही या गलत के बूलियन मूल्य, प्रदर्शन के लिए उपयोग किया जाने वाले लेबल नहीं. बूलियन मान का उपयोग किया जाता है क्योंकि यह भाषा निरपेक्ष है. false
हाइपरलिंक, पाठ दोहरे उद्धरण चिह्नों के बीच स्ट्रिंग. फ़ंक्शन बैकस्लैश के साथ एम्बेडेड दोहरे-उद्धरण चिह्न को एस्केप करता है, न्यूलाइन को "\n" द्वारा प्रतिस्थापित करता है, और अन्य मानक JavaScript प्रतिस्थापन बनाता है. "This is a string."

परिणाम कितना पठनीय है और कैसे असमर्थित और बाइनरी डेटा प्रकारों को हैंडल किया जाता है, यह नियंत्रित करने के लिए वैकल्पिक स्वरूप तर्क निर्दिष्ट करें. डिफ़ॉल्ट रूप से, आउटपुट यथासंभव कॉम्पैक्ट है, जिसमें कोई अनावश्यक रिक्त स्थान या न्यूलाइन नहीं है, और असमर्थित डेटा प्रकार और बाइनरी डेटा की अनुमति नहीं होती. यदि आप & ऑपरेटर निर्दिष्ट करते हैं तो आप एकाधिक प्रारूपों को संयोजित कर सकते हैं।

JSONFormat इनम वर्णन
JSONFormat.कॉम्पैक्ट डिफ़ॉल्ट. आउटपुट यथासंभव कॉम्पैक्ट है, जिसमें कोई जोड़ा गया रिक्त स्थान या न्यूलाइन नहीं है.
JSONFormat.FlattenValueTables मान तालिका, [1,2,3] संकेतन के परिणामस्वरूप रिकॉर्ड वाली एक तालिका प्राप्त होती है, जहां प्रत्येक रिकॉर्ड में एक एकल मान स्तंभ होता है। में JSON, वही संकेतन तीन संख्याओं की एक सरणी का प्रतिनिधित्व करता है। दोनों के बीच इंटरऑपरेबिलिटी को आसान बनाने के लिए, यह विकल्प रिकॉर्ड की एक सरणी के बजाय एक JSON अनुकूल सरणी के लिए एक Power Fx मान तालिका को समतल करता है।
JSONFormat.IndentFour पठनीयता सुधारने के लिए, आउटपुट में प्रत्येक स्तंभ और नेस्टिंग स्तर के लिए एक न्यूलाइन होती है और प्रत्येक इंडेंटेशन स्तर के लिए चार रिक्त स्थानों का उपयोग किया जाता है.
JSONFormat.IncludeBinaryData परिणाम में छवि, वीडियो और ऑडियो-क्लिप स्तंभ शामिल हैं. यह स्वरूप नाटकीय रूप से परिणाम के आकार को बढ़ा सकता है और आपके ऐप के प्रदर्शन को घटा सकता है.
JSONFormat.Ignoreबाइनरीडेटा परिणाम में छवि, वीडियो या ऑडियो-क्लिप स्तंभ शामिल नहीं हैं. यदि आप न तो JSONFormat.IncludeBinaryData और न ही JSONFormat.IgnoreBinaryData निर्दिष्ट करते हैं, तो फ़ंक्शन बाइनरी डेटा मिलने पर त्रुटि उत्पन्न करता है।
JSONFormat.IgnoreUnsupportedTypes असमर्थित डेटा प्रकारों की अनुमति है, लेकिन परिणाम में उन्हें शामिल नहीं किया जाएगा. डिफ़ॉल्ट रूप से, असमर्थित डेटा प्रकार त्रुटि उत्पन्न करते हैं.

परिणाम में किस डेटा को शामिल किया जाना है, यह नियंत्रित करने, और असमर्थित डेटा प्रकारों के निकालने के लिए ShowColumns और DropColumns फ़ंक्शन का उपयोग करें.

क्योंकि स्मृति और गणना गहन दोनों हो सकते हैं, आप JSON इस फ़ंक्शन का उपयोग केवल व्यवहार कार्यों में कर सकते हैं। आप परिणाम JSON को एक चर में कैप्चर कर सकते हैं, जिसे आप डेटा प्रवाह में उपयोग कर सकते हैं।

यदि किसी स्तंभ में प्रदर्शन नाम और तार्किक नाम दोनों हैं, तो परिणाम में तार्किक नाम होता है. प्रदर्शन नाम ऐप उपयोगकर्ता की भाषा को दर्शाते हैं और इसलिए, एक सामान्य सेवा में डेटा स्थानांतरण के लिए अनुपयुक्त हैं.

सिंटैक्स

JSON( डेटास्ट्रक्चर [, प्रारूप] )

  • डेटास्ट्रक्चर – आवश्यक. डेटा संरचना को कनवर्ट करने के JSONलिए। टेबल, रिकॉर्ड और प्राथमिक मान समर्थित, मनमाने ढंग से नेस्टेड होते हैं.
  • प्रारूप - वैकल्पिक. JSONFormat enum मान. डिफ़ॉल्ट मान JSONFormat.Compact है, जो नई पंक्तियां या रिक्त स्थान नहीं जोड़ता है और बाइनरी डेटा और असमर्थित कॉलम को ब्लॉक करता है।

उदाहरण

पदानुक्रमित डेटा

  1. एक बटन नियंत्रण सम्मिलित करें, और उसके OnSelect गुण को इस सूत्र पर सेट करें.

    ClearCollect( CityPopulations,
        { City: "London",    Country: "United Kingdom", Population: 8615000 },
        { City: "Berlin",    Country: "Germany",        Population: 3562000 },
        { City: "Madrid",    Country: "Spain",          Population: 3165000 },
        { City: "Hamburg",   Country: "Germany",        Population: 1760000 },
        { City: "Barcelona", Country: "Spain",          Population: 1602000 },
        { City: "Munich",    Country: "Germany",        Population: 1494000 }
    );
    ClearCollect( CitiesByCountry, GroupBy( CityPopulations, "Country", "Cities" ) )
    
  2. Alt कुंजी को दबाए रखते हुए बटन चुनें.

    CitiesByCountry संग्रह इस डेटा संरचना के साथ बनाया गया है, जिसे आप फ़ाइल पर संग्रह मेनू चयन कर और फिर संग्रह का नाम चयन कर दिखा सकते हैं.

    CitiesByCountry संग्रह.

    आप इस संग्रह को सेटिंग्स>आगामी फीचर>फॉर्मूला बार परिणाम दृश्य सक्षम करें का चयन करके, फॉर्मूला बार में संग्रह का नाम चुन कर और फिर फॉर्मूला बार के तहत संग्रह के नाम के बगल में डाउन एरो का चयन कर के भी दिखा सकते हैं.

    संग्रह को सूत्र पट्टी के परिणाम दृश्य में प्रदर्शित करें.

  3. अन्य बटन सम्मिलित करें, और उसके OnSelect गुण को इस सूत्र पर सेट करें:

    Set( CitiesByCountryJSON, JSON( CitiesByCountry ) )
    

    यह सूत्र वैश्विक परिवर्तनशील शहरोंByCountryJSON को JSONCitiesByCountry के प्रतिनिधित्व के लिए निर्धारित करता है।

  4. Alt कुंजी को दबाए रखते हुए बटन चुनें.

  5. एक लेबल नियंत्रण जोड़ें, और इसके पाठ गुण को इस चर पर सेट करें.

    CitiesByCountryJSON
    

    लेबल यह परिणाम, सभी एक पंक्ति पर, बिना कोई रिक्त स्थान के दिखाता है, जो समूचे नेटवर्क में प्रसार के लिए उपयुक्त है:

    [
      {
        "Cities": [{ "City": "London", "Population": 8615000 }],
        "Country": "United Kingdom"
      },
      {
        "Cities": [
          { "City": "Berlin", "Population": 3562000 },
          { "City": "Hamburg", "Population": 1760000 },
          { "City": "Munich", "Population": 1494000 }
        ],
        "Country": "Germany"
      },
      {
        "Cities": [
          { "City": "Madrid", "Population": 3165000 },
          { "City": "Barcelona", "Population": 1602000 }
        ],
        "Country": "Spain"
      }
    ]
    
  6. आउटपुट को अधिक पठनीय बनाने के लिए द्वितीय बटन का सूत्र परिवर्तित करें.

    Set( CitiesByCountryJSON, JSON(CitiesByCountry, JSONFormat.IndentFour ))
    
  7. Alt कुंजी को दबाए रखते हुए द्वितीय बटन का चयन करें.

    लेबल अधिक पठनीय परिणाम दिखाता है.

    [
      {
        "Cities": [
          {
            "City": "London",
            "Population": 8615000
          }
        ],
        "Country": "United Kingdom"
      },
      {
        "Cities": [
          {
            "City": "Berlin",
            "Population": 3562000
          },
          {
            "City": "Hamburg",
            "Population": 1760000
          },
          {
            "City": "Munich",
            "Population": 1494000
          }
        ],
        "Country": "Germany"
      },
      {
        "Cities": [
          {
            "City": "Madrid",
            "Population": 3165000
          },
          {
            "City": "Barcelona",
            "Population": 1602000
          }
        ],
        "Country": "Spain"
      }
    ]
    

base64 में छवियाँ और मीडिया

  1. एक छवि नियंत्रण जोड़ें.

    यह नियंत्रण इसके साथ SampleImage लाता है.

  2. एक बटन नियंत्रण जोड़ें और उसके OnSelect गुण को इस सूत्र पर सेट करें.

    Set( ImageJSON, JSON( SampleImage, JSONFormat.IncludeBinaryData ) )
    
  3. Alt कुंजी को दबाए रखते हुए बटन चुनें.

  4. एक लेबल जोड़ें, और इसके पाठ गुण को इस चर पर सेट करें.

    ImageJSON
    
  5. नियंत्रण का आकार बदलें और फ़ॉन्ट का आकार आवश्यकतानुसार कम करें, ताकि अधिकांश परिणाम दिखाई दे सके.

    लेबल उस टेक्स्ट स्ट्रिंग को दिखाता है जिसे फ़ंक्शन कैप्चर JSON किया गया है।

    "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjxzdmcgdmVyc2lvbj0iMS4xIg0KCSB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWxuczphPSJodHRwOi8vbnMuYWRvYmUuY29tL0Fkb2JlU1ZHVmlld2VyRXh0ZW5zaW9ucy8zLjAvIg0KCSB4PSIwcHgiIHk9IjBweCIgd2lkdGg9IjI3MHB4IiBoZWlnaHQ9IjI3MHB4IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCAyNzAgMjcwIiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCgk8ZyBjbGFzcz0ic3QwIj4NCgkJPHJlY3QgeT0iMC43IiBmaWxsPSIjRTlFOUU5IiB3aWR0aD0iMjY5IiBoZWlnaHQ9IjI2OS4zIi8+DQoJCTxwb2x5Z29uIGZpbGw9IiNDQkNCQ0EiIHBvaW50cz0iMjc3LjksMTg3LjEgMjQ1LDE0My40IDE4OC42LDIwMi44IDc1LDgwLjUgLTQuMSwxNjUuMyAtNC4xLDI3MiAyNzcuOSwyNzIiLz4NCgkJPGVsbGlwc2UgZmlsbD0iI0NCQ0JDQSIgY3g9IjIwMi40IiBjeT0iODQuMSIgcng9IjI0LjQiIHJ5PSIyNC4zIi8+DQoJPC9nPg0KPC9zdmc+"
    

मूल्य तालिकाएं

यह सूत्र:

JSON( [1,2,3] )

पाठ स्ट्रिंग [{"मान":1},{"मान":2},{"मान":3}] उत्पन्न करता है।

JSONFormat.FlattenValueTables विकल्प के साथ समान सूत्र:

JSON( [1,2,3], JSONFormat.FlattenValueTables )

पाठ स्ट्रिंग [1,2,3] उत्पन्न करता है.

ध्यान दें कि FlattenValueTables विकल्प CityPopulations या CitiesByCountry संग्रह के साथ उपयोग करते JSON समय कोई प्रभाव नहीं है क्योंकि ये तालिकाएँ मान तालिकाएँ नहीं हैं। मान तालिका में एक एकल स्तंभ होता है और इसका नाम "मान" होना चाहिए।