Tips Ignore Omitempty di Bahasa Golang

Subscribe dengan Account Google untuk mendapatkan News Letter terbaru dari Halovina !
Tips Ignore Omitempty di Bahasa Golang
Kris 8 Ltr Evaporative Air Cooler 513cmh

Kris 8 Ltr Evaporative Air Cooler 513cmh

Jadikan ruangan Anda lebih sejuk dengan menggunakan evaporative air cooler persembahan dari Kris ini. Terbuat dari material berkualitas yang kokoh dan stabil sehingga awet untuk penggunaan jangka panjang. Air cooler ini dibekali berkapasitas tangki 8 liter dengan airflow 513 cmh yang mampu menyejukkan ruangan dengan optimal.

Free Klik Disini !

Apa itu Omitempty ?


Omitempty merupakan sebuah opsi yang menentukan sebuah object-key akan di hilangkan jika sebuah object-key memiliki nilai kosong.

Saat kita bekerja dalam environment project yang komplek, kita akan menemukan sebuah struct yang konstruktornya dipakai oleh banyak method.

Perhatikan contoh kode berikut ini:

package main

import (
"encoding/json"
"fmt"
)

type employee struct {
Name string `json:"name,omitempty"`
Address string `json:"address"`
}

func main() {
dataEmployee := employee{
Name: "",
Address: "jalan raya kenari",
}

byte, err := json.Marshal(dataEmployee)
if err != nil {
fmt.Println(err.Error())
return
}
fmt.Println(string(byte))
}

Result:

{"Address": "jalan raya kenari"}

Perhatikan struct employee, terdapat sebuah object json name dengan omitempty. Dari contoh diatas object-key Name tidak memiliki value, sehingga saat code dijalankan golang secara otomatis akan menghilangkan object-key Name dari tampilan layar.

Bagaimana Meng-Ignore Omitempty Object-key Name ?


Jika terdapat sebuah kondisi dimana kita ingin menampilkan object-key Name kelayar, namun kita tetap ingin mempertahankan omitempty sebagai defautl dari object-key Name.

Solusinya kita bisa menambahkan pointer pada tipe data dari object-key Name, menjadi seperti berikut:


Name *string `json:"name,omitempty"`


Kemudian buat sebuah variable dengan empty string

dnama := ""
dataEmployee := employee{
Name: &dnama,
Address: "jalan raya kenari",
}

Perhatikan kode program dibawah ini:

package main

import (
"encoding/json"
"fmt"
)

type employee struct {
Name *string `json:"name,omitempty"`
Address string `json:"address"`
}

func main() {
dnama := ""
dataEmployee := employee{
Name: &dnama,
Address: "jalan raya kenari",
}

byte, err := json.Marshal(dataEmployee)
if err != nil {
fmt.Println(err.Error())
return
}
fmt.Println(string(byte))
}

Result:

{"name":"","address":"jalan raya kenari"}

Baca Artikel lainya:



  1. Hello world, membangun microservice dengan FastAPI

  2. FastAPI APIRouter, Membangun microservice dngan FastAPI

  3. Mini Wallet Bagian 1 - Django Template dan Static File

  4. Mini Wallet Bagian 2 - Django Template Base HTML

  5. Mini Wallet Bagian 3 - Dajngo Model dan Koneksi Database MySQL

  6. Tutorial bassic Mysql bagian 1 - Create Read Update Delete

  7. Tutorial bassic Mysql bagian 2 - Inner, Left, Right, Cross Join

  8. Tutorial bassic Mysql bagian 3 - Filtering Data

  9. Tutorial bassic Mysql bagian 4 - Grouping Data 

  10. Tutorial bassic Mysql bagian 5 - Operator dan Clausa

  11. Tutorial bassic Mysql bagian 6 - Replace Statement

  12. Tutorial bassic Mysql bagian 7 - Constraint Data

  13. Tutorial bassic Mysql bagian 8 - Mengubah Struktur tabel

  14. Tutorial bassic Mysql bagian 9 - Subquery

  15. Tutorial bassic Mysql bagian 10 - Virtual Tabel

  16. Tutorial bassic Mysql bagian 11 - Control Flow Function

  17. Membuat service OTP bagian 1 - OTP dan PIN

  18. Membuat service OTP bagian 2 - Sequence Diagram

  19. Membuat service OTP bagian 3 - Model dan Serializer

  20. Membuat  service OTP bagian 4 - Validate OTP

  21. Membuat  service OTP bagian 5 - Api Client Service

  22. Membuat service user login bagian 1 - Konfigurasi Database

  23. Membuat service user login bagian 2 - Serializer dan JWT

  24. Membuat CRUD service product bagian 1 - Models Product

  25. Membuat CRUD service product bagian 2 - Function Serializer

  26. Membuat CRUD service product bagian 3 - Api Client Service

  27. Membaut CRUD service product bagian 4 - Auth User

  28. Membuat CRUD service product bagian 5 - TDR File Log

  29. Membuat CRUD service product bagian 6 - Unit Test

  30. Membuat service user register bagian 1 - Django

  31. Membuat Service user register bagian 2 - Django

  32. Membuat service filter dan download file CSV di django

  33. Django upload file menggunakan FileSystemStorage