Ambil perhatian
Akses ke halaman ini memerlukan kebenaran. Anda boleh cuba log masuk atau menukar direktori.
Akses ke halaman ini memerlukan kebenaran. Anda boleh cuba menukar direktori.
Terpakai kepada: Apl
kanvas Copilot Studio
Apl
dipacu model Power Platform CLI
Fungsi
Dataverse Power Pages
Menjana JSON rentetan teks untuk jadual, rekod atau nilai.
Penerangan
Fungsi ini JSON mengembalikan perwakilan Notasi Objek JavaScript (JSON) bagi struktur data sebagai teks supaya ia sesuai untuk menyimpan atau menghantar merentasi rangkaian. [ECMA-404](https://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf dan IETF RFC 8259 menerangkan format, yang digunakan secara meluas oleh JavaScript dan bahasa pengaturcaraan lain.
Aplikasi kanvas menyokong jenis data bahawa jadual ini menyenaraikan dengan terperinci tentang perwakilan teks mereka:
| Jenis data | Penerangan | Contoh hasil |
|---|---|---|
| Boolean | benar atau salah. | true |
| Warna | Rentetan yang mengandungi 8-digit perwakilan perenambelasan untuk warna. Perwakilan ini mengambil format #rrggbbaayang mana rr adalah komponen merah, gg adalah hijau, bb adalah biru dan aa adalah saluran alfa.. Untuk saluran alfa, 00 adalah telus sepenuhnya dan ff adalah legap sepenuhnya. Anda boleh menghantar rentetan ke fungsi ColorValue. | "#102030ff" |
| Mata wang | Nombor yang menggunakan pemisah perpuluhan yang sesuai untuk bahasa pengguna. Notasi saintifik digunakan jika diperlukan. | 1.345 |
| Tarikh | Rentetan yang mengandungi tarikh dalam format ISO 8601 hh-bb-tttt. | "2019-03-31" |
| TarikhMasa | Rentetan yang mengandungi tarikh/masa ISO 8601. Nilai tarikh/masa berada dalam UTC seperti yang ditunjukkan akhir "Z". | "2019-03-31T22:32:06.822Z" |
| GUID | Rentetan yang mengandungi nilai GUID. Huruf kecil. | "751b58ac-380e-4a04-a925-9f375995cc40" |
| Imej, Media | Jika JSONFormat.IncludeBinaryData ditentukan, fail media dikodkan dalam rentetan. Rujukan web yang menggunakan http: atau https: skema URL tidak diubah suai. Rujukan ke data binari dalam memori dikodkan dengan "data:mimetype;base64,..." format. Data dalam memori termasuk imej yang dirakam oleh pengguna dengan menggunakan kawalan Kamera dan sebarang rujukan lain dengan appres: dan blob: skema URL. | "data:image/jpeg;base64,/9j/4AA..." |
| Nombor | Nombor yang menggunakan pemisah perpuluhan yang sesuai untuk bahasa pengguna. Notasi saintifik digunakan jika diperlukan. | 1.345 |
| set pilihan | Nilai angka bagi pilihan, bukan label yang digunakan untuk paparan. Nilai angka digunakan kerana ia bahasa bebas. | 1001 |
| Masa | Rentetan yang mengandungi format ISO 8601 hh:mm:ss.fff. | "23:12:49.000" |
| Rekod | Senarai dipisahkan koma, antara { dan }, medan dan nilai mereka. Notasi ini menyerupai rekod dalam aplikasi kanvas, tetapi namanya selalu berada antara tanda petikan berganda. Format ini tidak menyokong rekod yang berdasarkan pada hubungan banyak kepada satu. | { "First Name": "Fred", "Age": 21 } |
| Jadual | Senarai dipisahkan koma, antara [ dan ], bagi rekod. Format ini tidak menyokong jadual yang berdasarkan pada hubungan satu kepada banyak. Gunakan pilihan JSONFormat.FlattenValueTables untuk mengalih keluar rekod bagi jadual lajur tunggal dengan lajur bernama Nilai. | [ { "First Name": "Fred", "Age": 21 }, { "First Name": "Jean", "Age": 20 } ] |
| Dua pilihan | Nilai BBoolean daripada dua pilihan, benar atau palsu, bukan label yang digunakan untuk paparan. Nilai Boolean digunakan kerana bahasa itu bebas. | false |
| Hiperpautan, Teks | Rentetan antara tanda petikan berganda. Fungsi ini melepaskan tanda petikan berganda yang terbenam dengan garis miring balik, menggantikan baris baharu dengan "\n", dan membuat penggantian JavaScript standard yang lain. | "This is a string." |
Tentukan argumen Format pilihan untuk mengawal cara hasil boleh dibaca dan cara jenis data yang tidak disokong dan binari ditangani. Secara lalai, output itu adalah sepadat yang mungkin tanpa ruang atau baris baharu yang tidak perlukan, dan jenis data yang tidak disokong serta data binari adalah tidak dibenarkan. Anda boleh menggabungkan pelbagai format jika anda menentukan operator &.
| JSONFormat enum | Penerangan |
|---|---|
| JSONFormat.Compact | Lalai. Output adalah sepadat yang mungkin tanpa ruang tambahan atau baris baharu. |
| JSONFormat.FlattenValueTables | Sebagai jadual Nilai, notasi menghasilkan jadual yang mengandungi rekod di mana setiap rekod mempunyai lajur Nilai [1,2,3] tunggal . Dalam JSON, notasi yang sama mewakili tatasusunan tiga nombor. Untuk menjadikan kebolehoperasian antara kedua-duanya lebih mudah, pilihan ini meratakan jadual Nilai Power Fx kepada JSON tatasusunan mesra dan bukannya tatasusunan rekod. |
| JSONFormat.IndentFour | Untuk meningkatkan kebolehbacaan, output mengandungi garis baharu untuk setiap lajur dan tahap bersarang serta menggunakan empat ruang untuk setiap tahap pengengsotan. |
| JSONFormat.IncludeBinaryData | Hasil termasuk lajur imej, video dan klip audio. Format ini dapat meningkatkan saiz hasil secara mendadak dan menurunkan prestasi aplikasi anda. |
| JSONFormat.IgnoreBinaryData | Hasil tidak termasuk lajur imej, video atau klip audio. Jika anda tidak menentukan JSONFormat.IncludeBinaryData mahupun JSONFormat.IgnoreBinaryData, fungsi menghasilkan ralat jika ia menemui data binari. |
| JSONFormat.IgnoreUnsupportedTypes | Jenis data yang tidak disokong dibenarkan tetapi hasil tidak akan menyertakannya. Jenis data yang tidak disokong menghasilkan ralat secara lalai. |
Gunakan fungsi ShowColumns dan DropColumns untuk mengawal data yang termasuk dalam hasil dan mengalih keluar jenis daya yang tidak disokong.
Oleh kerana JSON boleh menjadi memori dan pengiraan intensif, anda boleh menggunakan fungsi ini hanya dalam fungsi tingkah laku. Anda boleh menangkap hasil daripada JSONpembolehubah, yang kemudiannya boleh anda gunakan dalam aliran data.
Jika lajur mempunyai nama paparan dan nama logik, hasil akan mengandungi nama logik. Nama paparan menunjukkan bahasa pengguna aplikasi, oleh itu, tidak sesuai untuk pemindahan data ke perkhidmatan biasa.
Sintaks
JSON( Struktur Data [, Format ] )
- DataStructure – Diperlukan. Struktur data untuk ditukar kepada JSON. Jadual, rekod dan nilai primitif disokong, sewenang-wenangnya disarang.
- Format - Pilihan. JSONFormat nilai enum. Nilai lalai ialah JSONFormat.Compact, yang tidak menambah baris baharu atau ruang serta menyekat data binari dan lajur yang tidak disokong.
Contoh
Data berhierarki
Sisip kawalan Butang dan tetapkan sifat OnSelect kepada formula ini.
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" ) )Pilih butang semasa menekan kunci Alt.
Koleksi CitiesByCountry dicipta dengan struktur data ini yang boleh anda tunjukkan dengan memilih Koleksi pada menu Fail dan kemudian memilih nama koleksi.
Anda boleh juga menunjukkan koleksi ini dengan memilih Tetapan>Ciri akan datang>Dayakan pandangan hasil bar formula, memilih nama koleksi dalam bar formula dan kemudian memilih anak panah bawah bersebelahan nama koleksi di bawah bar formula.
Sisipkan butang lain dan tetapkan sifat OnSelect untuk formula ini:
Set( CitiesByCountryJSON, JSON( CitiesByCountry ) )Formula ini menetapkan pembolehubah global CitiesByCountryJSON kepada perwakilan JSON untuk CitiesByCountry.
Pilih butang semasa menekan kunci Alt.
Sisipkan kawalan Label dan tetapkan sifat Teks kepada pemboleh ubah ini.
CitiesByCountryJSONLabel menunjukkan hasil ini, semuanya dalam baris tunggal tanpa ruang, sesuai untuk penghantaran melalui rangkaian:
[ { "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" } ]Ubah formula butang kedua untuk menjadikan output lebih mudah dibaca.
Set( CitiesByCountryJSON, JSON(CitiesByCountry, JSONFormat.IndentFour ))Pilih butang kedua sambil menahan kekunci Alt.
Label menunjukkan hasil yang lebih mudah dibaca.
[ { "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" } ]
Imej dan media dalam base64
Tambah kawalan Imej.
Kawalan ini membawa SampleImage dengannya.
Tambah kawalan Butang dan tetapkan sifat OnSelect kepada formula ini.
Set( ImageJSON, JSON( SampleImage, JSONFormat.IncludeBinaryData ) )Pilih butang semasa menekan kunci Alt.
Tambah label dan tetapkan sifat Teks untuk pemboleh ubah ini.
ImageJSONSaiz semula kawalan dan kurangkan saiz fon yang diperlukan untuk menunjukkan sebahagian besar hasil.
Label menunjukkan rentetan teks yang JSON ditangkap oleh fungsi.
"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjxzdmcgdmVyc2lvbj0iMS4xIg0KCSB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWxuczphPSJodHRwOi8vbnMuYWRvYmUuY29tL0Fkb2JlU1ZHVmlld2VyRXh0ZW5zaW9ucy8zLjAvIg0KCSB4PSIwcHgiIHk9IjBweCIgd2lkdGg9IjI3MHB4IiBoZWlnaHQ9IjI3MHB4IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCAyNzAgMjcwIiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCgk8ZyBjbGFzcz0ic3QwIj4NCgkJPHJlY3QgeT0iMC43IiBmaWxsPSIjRTlFOUU5IiB3aWR0aD0iMjY5IiBoZWlnaHQ9IjI2OS4zIi8+DQoJCTxwb2x5Z29uIGZpbGw9IiNDQkNCQ0EiIHBvaW50cz0iMjc3LjksMTg3LjEgMjQ1LDE0My40IDE4OC42LDIwMi44IDc1LDgwLjUgLTQuMSwxNjUuMyAtNC4xLDI3MiAyNzcuOSwyNzIiLz4NCgkJPGVsbGlwc2UgZmlsbD0iI0NCQ0JDQSIgY3g9IjIwMi40IiBjeT0iODQuMSIgcng9IjI0LjQiIHJ5PSIyNC4zIi8+DQoJPC9nPg0KPC9zdmc+"
Jadual nilai
Formula ini:
JSON( [1,2,3] )
Menghasilkan rentetan teks [{"Nilai":1},{"Nilai":2},{"Nilai":3}].
Formula yang sama dengan pilihan JSONFormat.FlattenValueTables:
JSON( [1,2,3], JSONFormat.FlattenValueTables )
Menghasilkan rentetan teks[1,2,3].
Ambil perhatian bahawa opsyen FlattenValueTables tidak mempunyai kesan apabila digunakan JSON dengan koleksi CityPopulations atau CitiesByCountry kerana jadual ini bukan jadual Value. Jadual Nilai mempunyai lajur tunggal dan ia mesti dinamakan "Nilai".