แชร์ผ่าน


ฟังก์ชัน JSON

นําไปใช้กับ: แอปพื้นที่ทํางานแอปที่ขับเคลื่อนด้วยแบบจําลอง Copilot Studio ฟังก์ชัน Power Platform CLI Dataverse Power Pages

สร้าง JSON สตริงข้อความสําหรับตาราง ระเบียน หรือค่า

คำอธิบาย

ฟังก์ชัน JSON จะส่งกลับ JavaScript Object Notation (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,..." ข้อมูลในหน่วยความจำรวมถึงภาพที่ผู้ใช้ถ่าย โดยใช้ตัวควบคุม กล้อง และการอ้างอิงอื่นๆ ด้วยรูปแบบ URL appres: และ blob: "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 เพื่อลบระเบียนสำหรับตารางคอลัมน์เดี่ยวที่มีคอลัมน์ชื่อ ค่า [ { "First Name": "Fred", "Age": 21 }, { "First Name": "Jean", "Age": 20 } ]
สองตัวเลือก ค่าบูลีนของสองตัวเลือก จริง หรือ เท็จ ไม่ใช่ป้ายกำกับที่ใช้สำหรับแสดงผล ค่าบูลีนถูกใช้ เนื่องจากเป็นรูปแบบที่ไม่ขึ้นกับภาษา false
ไฮเปอร์ลิงก์, ข้อความ สตริงระหว่างเครื่องหมายอัญประกาศคู่ เครื่องหมายอัญประกาศคู่ฝัง Escape ฟังก์ชัน ด้วยเครื่องหมายทับขวา แทนที่บรรทัดใหม่ด้วย "\n" และทำการแทนที่ JavaScript มาตรฐานอื่นๆ "This is a string."

ระบุอาร์กิวเมนต์ รูปแบบ ทางเลือก เพื่อควบคุมวิธีการอ่านผลลัพธ์ และวิธีจัดการชนิดข้อมูลและไบนารีที่ไม่สนับสนุน โดยค่าเริ่มต้น ผลลัพธ์จะมีขนาดกะทัดรัดที่สุดโดยไม่มีช่องว่างหรือบรรทัดใหม่ที่ไม่จำเป็น และไม่อนุญาตให้ใช้ชนิดข้อมูลและข้อมูลไบนารีที่ไม่ได้รับการสนับสนุน คุณสามารถรวมหลายรูปแบบได้ หากคุณระบุตัวดำเนินการ &

enum JSONFormat คำอธิบาย
รูปแบบ JSON แบบกะทัดรัด ค่าเริ่มต้น ผลลัพธ์มีขนาดกะทัดรัดที่สุดเท่าที่จะเป็นไปได้โดยไม่มีช่องว่างหรือบรรทัดใหม่
JSONFormat.ตารางค่าแบน เนื่องจาก ตารางค่า สัญกรณ์ [1,2,3] จะส่งผลให้เกิดตารางที่มีระเบียน โดยแต่ละระเบียนจะมีคอลัมน์ ค่า เดียว ใน JSONสัญลักษณ์เดียวกันนี้แสดงถึงอาร์เรย์ของตัวเลขสามตัว เพื่อให้การทํางานร่วมกันระหว่างสองวิธีง่ายขึ้น ตัวเลือกนี้ลดรูปแบบรูปแบบรูปแบบตารางค่า Power Fx ให้เป็นอาร์เรย์ที่ JSON เรียกง่ายแทนอาร์เรย์ของเรกคอร์ด
รูปแบบ JSON.IndentFour เพื่อปรับปรุงความสามารถในการอ่าน ผลลัพธ์ประกอบด้วยบรรทัดใหม่สำหรับแต่ละคอลัมน์ และระดับการซ้อนและใช้ช่องว่างสี่ช่องสำหรับแต่ละระดับการเยื้อง
รูปแบบ JSON รวมข้อมูลไบนารี ผลลัพธ์ประกอบด้วยคอลัมน์รูปภาพ วิดีโอ และคลิปเสียง รูปแบบนี้สามารถเพิ่มขนาดของผลลัพธ์ได้อย่างมากและลดประสิทธิภาพของแอปของคุณ
รูปแบบ JSON.ละเว้นข้อมูลไบนารี ผลลัพธ์ไม่่รวมถึงคอลัมน์รูปภาพ วิดีโอ หรือคลิปเสียง หากคุณระบุ ไม่ว่า JSONFormat.IncludeBinaryData หรือ JSONFormat.IgnoreBinaryData ฟังก์ชันสร้างข้อผิดพลาดหากพบข้อมูลไบนารี
JSONFormat.ละเว้นประเภทที่ไม่รองรับ อนุญาตให้ใช้ชนิดข้อมูลที่ไม่รองรับ แต่ผลลัพธ์จะไม่รวม ตามค่าเริ่มต้น ชนิดข้อมูลที่ไม่สนับสนุนจะทำให้เกิดข้อผิดพลาด

ใช้ฟังก์ชัน ShowColumns และ DropColumns เพื่อควบคุมข้อมูลที่ผลลัพธ์รวมถึง และลบชนิดข้อมูลที่ไม่สนับสนุน

เนื่องจาก JSON อาจมีทั้งหน่วยความจําและการคํานวณแบบสูง คุณสามารถใช้ฟังก์ชันนี้ได้เฉพาะใน ฟังก์ชันการทํางานเท่านั้น คุณสามารถจับผลลัพธ์จาก JSON ลงใน ตัวแปร ซึ่งคุณสามารถใช้ในโฟลว์ข้อมูลได้

หากคอลัมน์มีทั้ง ชื่อที่แสดง และชื่อตรรกะ ผลลัพธ์จะมีชื่อตรรกะ ชื่อที่แสดงแสดงถึงภาษาของผู้ใช้แอป ดังนั้นจึงไม่เหมาะสมสำหรับการถ่ายโอนข้อมูลไปยังบริการทั่วไป

ไวยากรณ์

JSON( DataStructure [, Format ] )

  • DataStructure – จำเป็น โครงสร้างข้อมูลที่จะแปลงเป็น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 ) )
    

    สูตรนี้ตั้งค่าตัวแปรส่วนกลาง CitiesByCountryJSON เป็นJSONตัวแทนสําหรับ CitiesByCountry

  4. เลือกปุ่มขณะที่กดแป้น Alt ค้างไว้

  5. แทรกตัวควบคุม ป้ายชื่อ แล้วตั้งค่าคุณสมับติ Text เป็นตัวแปรนี้:

    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. เพิ่มป้ายกำกับ และตั้งค่าคุณสมบัติ Text เป็นตัวแปรนี้

    ImageJSON
    
  5. ปรับขนาดตัวควบคุมและลดขนาดตัวอักษรตามต้องกา รเพื่อแสดงผลลัพธ์ส่วนใหญ่

    ป้ายชื่อแสดงสตริง JSON ข้อความที่ฟังก์ชันรวบรวมไว้

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

ตารางค่า

สูตรนี้:

JSON( [1,2,3] )

สร้างสตริงข้อความ [{"Value":1},{"Value":2},{"Value":3}]

สูตรเดียวกันกับตัวเลือก JSONFormat.FlattenValueTables:

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

สร้างสตริงข้อความ [1,2,3]

โปรดทราบว่าตัวเลือก FlattenValueTables ไม่มีผลกระทบเมื่อใช้ JSON กับ CityPopulations หรือคอลเลกชัน CitiesByCountry เนื่องจากตารางเหล่านี้ไม่ใช่ตารางค่า ตารางค่ามีคอลัมน์เดียวและต้องตั้งชื่อว่า "ค่า"