Popularity
2.1
Growing
Activity
0.8
Declining
21
3
1

Programming language: Go
License: MIT License
Tags: Data Structures    
Latest version: v1.3

null alternatives and similar packages

Based on the "Data Structures" category.
Alternatively, view null alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of null or a related project?

Add another 'Data Structures' Package

README

Nullable Go types

GoDoc CircleCI Go Report Card

Description

This package provides nullable Go types for bool, float64, int64, int32, string and time.Time replacing sql.NullString, sql.NullInt64, ... that can be marshalled/unmarshalled to/from JSON.

Installation

To install "null", run go get within your project:

go get github.com/emvi/null

Note that from 1.3 on "null" requires Go version 1.13 or newer.

Usage

Here is a short example demonstrating the string type. The other types (int64, float64 and bool) work in the same manner.

package main

import (
    "encoding/json"
    "database/sql"
    "fmt"

    "github.com/emvi/null"
)

type NullableString struct {
    Value null.String `json:"value"`
}

func main() {
    str := NullableString{null.NewString("nullable string", true)}
    // or long version: str := NullableString{null.String{sql.NullString{String: "nullable string", Valid: true}}}

    data, _ := json.Marshal(str)
    fmt.Println(string(data)) // -> {"value": "nullable"}

    str.SetNil() // use str.SetValid("value") to set a value again
    data, _ = json.Marshal(str)
    fmt.Println(string(data)) // -> {"value": null}
}

Contribute

[See CONTRIBUTING.md](CONTRIBUTING.md)

License

MIT


*Note that all licence references and agreements mentioned in the null README section above are relevant to that project's source code only.