Topik ini menjelaskan sintaksis dan parameter fungsi data terstruktur. Data terstruktur mencakup data JSON dan XML. Topik ini juga memberikan contoh penggunaan fungsi-fungsi tersebut.
Fungsi
| Kategori | Fungsi | Deskripsi |
| JSON | json_select | Mengekstrak atau menghitung nilai tertentu dari ekspresi JSON dengan menggunakan JMESPath. |
| json_parse | Mem-parsing nilai menjadi objek JSON. | |
| XML | xml_to_json | Mengonversi data XML menjadi data JSON. |
json_select
Fungsi json_select mengekstrak atau menghitung nilai tertentu dari ekspresi JSON menggunakan JMESPath.
json_select(value, jmes, default=None, restrict=False)Parameter Tipe Diperlukan Deskripsi value String dan JSON Ya Ekspresi JSON input atau field. jmes String Ya Ekspresi JMESPath. Ekspresi ini menentukan field yang nilainya diekstraksi. default String Tidak Nilai yang dikembalikan jika field yang ditentukan tidak ada. Nilai default: None, yang berarti tidak ada field yang dikembalikan. restrict Bool Tidak Menentukan apakah akan mengaktifkan mode terbatas jika nilai field yang ditentukan dalam format JSON tidak valid. Nilai default: False. Nilai valid: - False: Masalah format tidak valid diabaikan, dan sistem melanjutkan transformasi data. Nilai parameter default dikembalikan.
- True: Masalah format tidak valid dilaporkan, dan sistem menghentikan transformasi data. Log dibuang.
Nilai yang diekstraksi dikembalikan.
- Contoh 1: Mengekstrak nilai field name dari field content.
- Log mentah
content: {"name": "xiaoming", "age": 10} - Aturan transformasi
e_set("json_filter",json_select(v("content"), "name")) - Hasil
content: {"name": "xiaoming", "age": 10} json_filter: xiaoming
- Log mentah
- Contoh 2: Mengekstrak semua nilai field name dari field content.
- Log mentah
content: {"name": ["xiaoming", "xiaowang", "xiaoli"], "age": 10} - Aturan transformasi
e_set("json_filter", json_select(v("content"), "name[*]")) - Hasil
content: {"name": ["xiaoming", "xiaowang", "xiaoli"], "age": 10} json_filter: ["xiaoming", "xiaowang", "xiaoli"]
- Log mentah
- Contoh 3: Mengekstrak nilai field name3 dari field content. Jika field name3 tidak ada, nilai parameter default dikembalikan.
- Log mentah
content: {"name": "xiaoming", "age": 10} - Aturan transformasi
e_set("json_filter", json_select(v("content"), "name3", default="None")) - Hasil
content: {"name": "xiaoming", "age": 10} json_filter: None
- Log mentah
- Contoh 4: Mengekstrak nilai elemen name-test dari field content.
- Log mentah
content: {"name": {"name-test":"xiaoming"}, "age": 10} - Aturan transformasi
e_set("json_filter", json_select(v("content"), 'name."name-test"', default=None)) - Hasil
content: {"name": {"name-test":"xiaoming"}, "age": 10} json_filter: xiaoming
- Log mentah
- Contoh 5: Mengekstrak nilai elemen name-test dari field content. Jika elemen name-test tidak ada, tidak ada field yang dikembalikan.
- Log mentah
content: {"name": {"name.test":"xiaoming"}, "age": 10} - Aturan transformasi
e_set("json_filter", json_select(v("content"), 'name."name-test"', default=None)) - Hasil
content: {"name": {"name-test":"xiaoming"}, "age": 10}
- Log mentah
- Contoh 1: Mengekstrak nilai field name dari field content.
json_parse
Fungsi json_parse mem-parsing nilai menjadi objek JSON.
json_parse(value, default=None, restrict=False)Parameter Tipe Diperlukan Deskripsi value String Ya Field input. default String Tidak Nilai yang dikembalikan jika field yang ditentukan tidak ada. Nilai default: None, yang berarti tidak ada field yang dikembalikan. restrict Bool Tidak Menentukan apakah akan mengaktifkan mode terbatas jika nilai field yang ditentukan dalam format JSON tidak valid. Nilai default: False. Nilai valid: - False: Masalah format tidak valid diabaikan, dan sistem melanjutkan transformasi data. Nilai parameter default dikembalikan.
- True: Masalah format tidak valid dilaporkan, dan sistem menghentikan transformasi data. Log dibuang.
Objek JSON dikembalikan.
- Contoh 1: Mengekstrak nilai JSON dari field content.
- Log mentah
content: {"abc": 123, "xyz": "test" } - Aturan transformasi
e_set("json", json_parse(v("content"))) - Hasil
content: {"abc": 123, "xyz": "test" } json: {"abc": 123, "xyz": "test"}
- Log mentah
- Contoh 2: Mengekstrak nilai field content. Jika nilai tersebut bukan dalam format JSON, nilai parameter default dikembalikan.
- Log mentah
content: this is not json - Aturan transformasi
e_set("json", json_parse(v("content"), default="FFF", restrict=False)) - Hasil
content: this is not json json: FFF
- Log mentah
- Contoh 1: Mengekstrak nilai JSON dari field content.
xml_to_json
Fungsi xml_to_json mengonversi data XML menjadi data JSON.
xml_to_json(source)Parameter Tipe Diperlukan Deskripsi source String Ya Field input. Data dalam format JSON dikembalikan.
- Log mentah
str : <data><country name="Liechtenstein"><rank>1</rank><year>2008</year><gdppc>141100</gdppc><neighbor name="Austria" direction="E"/><neighbor name="Switzerland" direction="W"/></country><country name="Singapore"><rank>4</rank><year>2011</year><gdppc>59900</gdppc><neighbor name="Malaysia" direction="N"/></country><country name="Panama"><rank>68</rank><year>2011</year><gdppc>13600</gdppc><neighbor name="Costa Rica" direction="W"/><neighbor name="Colombia" direction="E"/></country></data> - Aturan transformasi
e_set("str_json",xml_to_json(v("str"))) - Hasil
str:<data><country name="Liechtenstein"><rank>1</rank><year>2008</year><gdppc>141100</gdppc><neighbor name="Austria" direction="E"/><neighbor name="Switzerland" direction="W"/></country><country name="Singapore"><rank>4</rank><year>2011</year><gdppc>59900</gdppc><neighbor name="Malaysia" direction="N"/></country><country name="Panama"><rank>68</rank><year>2011</year><gdppc>13600</gdppc><neighbor name="Costa Rica" direction="W"/><neighbor name="Colombia" direction="E"/></country></data> str_json:{"data": {"country": [{"@name": "Liechtenstein", "rank": "1", "year": "2008", "gdppc": "141100", "neighbor": [{"@name": "Austria", "@direction": "E"}, {"@name": "Switzerland", "@direction": "W"}]}, {"@name": "Singapore", "rank": "4", "year": "2011", "gdppc": "59900", "neighbor": {"@name": "Malaysia", "@direction": "N"}}, {"@name": "Panama", "rank": "68", "year": "2011", "gdppc": "13600", "neighbor": [{"@name": "Costa Rica", "@direction": "W"}, {"@name": "Colombia", "@direction": "E"}]}]}}
- Log mentah