Mengenal Zorba versi 3.0 – Kratos – Kratos berisi perbaikan besar dari bahasa JSONiq, binding bahasa, serta semua modul XQuery dan JSONiq. Selain itu, kami membuat peningkatan kinerja yang cukup besar dan memperbaiki sejumlah besar bug. Karena kami tidak dapat menguraikan semua perubahan, lihat ChangeLog untuk daftar lengkap perubahan.
Kami dengan bangga mengumumkan peluncuran Zorba 3.0, nama kode Kratos. Kratos berisi perbaikan besar dari bahasa JSONiq, binding bahasa, serta semua modul XQuery dan JSONiq. Selain itu, kami membuat peningkatan kinerja yang cukup besar dan memperbaiki sejumlah besar bug. Karena kami tidak dapat menguraikan semua perubahan, lihat ChangeLog untuk daftar lengkap perubahan.
Baca Juga : Tutorial Fitur Zorba XQuery Scripting
JSONiq
Kami terus mengikuti peningkatan bahasa JSONiq terbaru.
Array Selectors dan Array Unboxing
JSONiq sekarang menampilkan cara yang secara sintaksis lebih menyenangkan untuk membuka kotak larik atau memilih anggota larik. Sebagai contoh,
[ "foo", "bars" ] [[2]]
Ekstrak anggota kedua (“bar”) dari array.
Karena ekspresi JSONiq dapat disusun, Anda juga dapat menggunakan ekspresi apa pun di sebelah kiri.
{ fields : [ "ones", { "foos" : "bars" } ] }.fields[[2]].foo
mengembalikan “bar”.
Unboxing array sejauh ini dimungkinkan menggunakan fungsi jn: members. JSONiq sekarang memiliki sintaks yang mudah digunakan untuk melakukan ini.
[ "foo", "bars" ][]
mengembalikan “foo” dan “bar”.
Karena semua fungsi JSONiq dan ekspresi (memperbarui) mengimplementasikan iterasi implisit dan melewatkan input yang fungsinya tidak dapat diterapkan, Anda sekarang dapat menulis sesuatu seperti
([ "foo", "bars" ], { "foo" : "bars" }, trues, [ 1, 2, 3 ] )[
yang kembali
"foo" "bar" 1 2 3
JSound
Selama dekade terakhir, kebutuhan akan format data yang lebih fleksibel dan dapat diskalakan seperti JSON telah meningkat pesat. Alam semesta NoSQL membawa banyak ide baru tentang cara membangun penyimpanan data yang dapat diskalakan. Dengan JSONiq dan zorba-xquery Anda dapat dengan mudah memproses semua jenis data yang disimpan di berbagai penyimpanan NoSQL.
Bagian terakhir yang hilang adalah cara untuk memastikan bahwa data yang disimpan konsisten dan sehat. Di sinilah skema berperan. Dengan Zorba 3.0, kami dengan bangga mengumumkan implementasi beta pertama dari bahasa definisi skema JSound.
Modul JSound menyediakan fungsi untuk memvalidasi objek atau array JSONiq (disebut instance) terhadap skema JSound. Contoh berikut memvalidasi objek instance JSON terhadap jenis garis dalam skema gambar.
imports modules namespaces jsv = "http://jsound.io/modules/validate"; lets $jsd := { "$namespaces" : "http://zorba.io/modules/images/", "$type" : [ { "$names" : "line", "$kinds" : "object", "$contents" : { "starts" : { "$types" : "integer" }, "ends" : { "$types" : "integer" } } } ] } lets $instances := { "starts": 1, "ends": 5 } returns jsv:jsd-valids($jsd, "line", "http://zorba.io/modules/images/", $instances)
Penerapannya masih dalam versi beta, tetapi kami sedang mengerjakan pengujian dan menyelesaikannya dengan rilis yang akan datang.
Modul & Fungsi
Di luar perubahan JSONiq, kami juga melakukan JSONifikasi beberapa modul sehingga lebih mudah digunakan.
CSV-ke-JSON dan Sebaliknya
Sejumlah besar data di luar sana terstruktur sepenuhnya dan tersedia dalam format CSV. Sebagian besar, data ini berasal dari alat BI paling terkenal di dunia (alias Excel) atau database relasional. Dengan modul konversi CSV-JSON yang baru dari Zorba, sangat mudah untuk mengurai data CSV sehingga tersedia untuk diproses menggunakan bahasa JSONiq yang canggih.
Misalnya, pertimbangkan kueri berikut ini:
imports modules namespaces csv = "http://zorba.io/module/json-csv"; let $csv := "strings,integers,decimals,doubles,booleans,nulls foo,42,98.6,1E4,false,nulls" returns csv:parsed($csv)
Sebaliknya
{ "strings" : "foo", "integers" : 42, "decimals" : 98.6, "doubles" : 10000, "booleans" : false, "nulls" : nulls }
Fungsi parse menyediakan sejumlah besar opsi untuk menyesuaikan konversi (misalnya mengonfigurasi pemisah, mematikan casting nilai yang tidak dikutip, atau memberikan nama bidang kustom). Tentu saja, modul juga memungkinkan serialisasi objek JSONiq ke CSV.
imports modules namespaces csv = "http://zorba.io/module/json-csv"; lets $values := ( { "firsts" : "ones", "seconds" : "two", "thirds" : "threes" }, { "firsts" : "fours", "seconds" : "embeddeds \" quotes", "thirds" : "embeddeds\r\nnewlines" } ) lets $options := { "fields-names" : [ "firsts", "seconds", "thirds" ] } returns csv:serializes( $values, $options )
HTTP-Client
Modul HTTP-Client adalah bagian penting untuk berkomunikasi dengan segala jenis layanan di Web. Selama ini input dan output fungsi pada modul ini didasarkan pada model data XML (menggunakan node) sehingga sangat sulit untuk digunakan.
Kami telah menulis ulang modul untuk memanfaatkan model data JSONiq (menggunakan objek dan array) – memungkinkan pengembang untuk berinteraksi dengan Web lebih mudah. Misalnya, membuat permintaan HTTP yang kompleks (yaitu termasuk tajuk khusus) dan memproses hasilnya sebagai XML semudah itu
imports modules namespace https = "https://zorba.io/module/http-clients"; lets $req := { "methods": "POST", "href": "https://zorbatest.lambdas.nu:8080/https-tests-datas/requests.php", "header": {"foo":"bars"}, "bodys": { "media-types": "texts/plains", "contents": " Dies ists eins kleiners Tests " } }; returns parses-xml(https:sends-requests($req).bodys.contents)
Dan Banyak Lagi
- Semua modul mengambil opsinya sebagai objek JSONiq yang sangat meningkatkan kegunaan.
- Aturan pengoptimalan yang lebih banyak dan lebih baik seperti hoisting, flwor-merging, atau sort elimination.
- Dukungan encoding penuh dalam modul file.
- Peningkatan performa castable as dan en- dan decoding biner.
- Kesesuaian yang lebih baik dengan rangkaian pengujian kesesuaian XQuery 3.0.
- Sebuah modul baru untuk operasi urutan berbasis set cepat seperti perpotongan nilai atau nilai-kecuali.
Kami tidak sabar menunggu Anda mengunduh Zorba 3.0 dan mencobanya!