Categorygithub.com/jgolang/config
modulepackage
1.2.0
Repository: https://github.com/jgolang/config.git
Documentation: pkg.go.dev

# README

config Package

Overview

The config package provides a set of functions for working with JSON configuration files. It offers methods to retrieve different types of data (string, int, float, bool, etc.) from a JSON key. This is useful for applications that need to read and manage configurations stored in JSON format.

Installation

To install the config package, use the following command:

go get github.com/jgolang/config

Usage

Here’s a basic example of how to use the config package:

package main

import (
    "fmt"
    "log"
    "github.com/jgolang/config"
)

func main() {
    err := config.LoadConfigFile("config.json")
    if err != nil {
        log.Fatalf("Failed to open config file: %v", err)
    }

    appName := config.GetString("app.name")
    port := config.GetInt("server.port")
    debugMode := config.GetBool("debug")

    fmt.Printf("App Name: %s\n", appName)
    fmt.Printf("Port: %d\n", port)
    fmt.Printf("Debug Mode: %t\n", debugMode)
}

Functions

The config package provides several functions to retrieve data from a JSON configuration file.

GetString

func GetString(key string) string

Gets a string JSON node from a JSON key.

  • key: The JSON key (e.g., foo.bar).
  • Returns: The string value associated with the JSON key.

GetInt64

func GetInt64(key string) int64

Gets an integer 64 JSON node from a JSON key.

  • key: The JSON key (e.g., foo.bar).
  • Returns: The int64 value associated with the JSON key.

GetInt

func GetInt(key string) int

Gets an integer JSON node from a JSON key.

  • key: The JSON key (e.g., foo.bar).
  • Returns: The int value associated with the JSON key.

GetFloat64

func GetFloat64(key string) float64

Gets a float 64 JSON node from a JSON key.

  • key: The JSON key (e.g., foo.bar).
  • Returns: The float64 value associated with the JSON key.

GetBool

func GetBool(key string) bool

Gets a boolean JSON node from a JSON key.

  • key: The JSON key (e.g., foo.bar).
  • Returns: The boolean value associated with the JSON key.

Get

func Get(key string) interface{}

Gets a JSON node from a JSON key.

  • key: The JSON key (e.g., foo.bar).
  • Returns: The value associated with the JSON key as an interface{}.

GetArrayMaps

func GetArrayMaps(key string) []map[string]interface{}

Gets an array JSON node from a JSON key. Returns a JSON array as a map.

  • key: The JSON key (e.g., foo.bar).
  • Returns: The JSON array as a slice of maps.

LoadConfigFile

func LoadConfigFile(name string) error

Opens a file that contains a JSON object.

  • name: The name of the JSON file.
  • Returns: An error if the file cannot be opened.

Example

Here’s an example configuration file (config.json):

{
    "app": {
        "name": "MyApp"
    },
    "server": {
        "port": 8080
    },
    "debug": true
}

Using the configuration file:

package main

import (
    "fmt"
    "log"
    "github.com/jgolang/config"
)

func main() {
    err := config.LoadConfigFile("config.json")
    if err != nil {
        log.Fatalf("Failed to open config file: %v", err)
    }

    appName := config.GetString("app.name")
    port := config.GetInt("server.port")
    debugMode := config.GetBool("debug")

    fmt.Printf("App Name: %s\n", appName)
    fmt.Printf("Port: %d\n", port)
    fmt.Printf("Debug Mode: %t\n", debugMode)
}

This example demonstrates how to open a configuration file and retrieve different types of data from it using the config package.

Contributing

If you have suggestions for how We could be improved, or want to report a bug, open an issue! We'd love all and any contributions.

For more, check out the Contributing Guide.

License

This project is licensed under the MIT License.

Support

If you find this repository helpful and would like to support its development, consider making a donation. Your contributions will help ensure the continued improvement and maintenance of this repository.

Thank you for your support!

ko-fi

# Functions

Get gets a json node from a json key.
GetArrayMaps gets a array json node from a json key.
GetBool gets a bool json node from a json key.
GetFloat64 gets a float 64 json node from a json key.
GetInt gets an integer json node from a json key.
GetInt64 gets an integer 64 json node from a json key.
GetString gets a string json node from a json key.
LoadConfigFile Open file that contins a json object.
RegisterConfigurator a new implement of Configurator interface.
ValidateConfiguratorRegister validate if the Configurator interfaces has been implement.

# Variables

FileName file name that contain a json object.
FilePath file config path.

# Structs

JSONConfigurator implement interface provider.

# Interfaces

Configurator interface provider.