dotpath

package module
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 10, 2025 License: BSD-3-Clause Imports: 6 Imported by: 6

README

dotpath

This is a collection of Go, Python and TypeScript modules implementing getDotpath and hasDotpath functions for working with maps, dictionaries and objects. It supports access and existance Go map, Python dict and TypeScript object or {[key: string]: any} using a dot path notation similar to that supported by jq.

The Go package provides a simple mechanism to extract bits of JSON based on simple explicit dot path notation. This package is used by dataset.

Documentation

Overview

dotpath.go package provides a convient way of mapping JSON dot path notation to a nested map structure.

@author R. S. Doiel, <rsdoiel@caltech.edu>

Copyright (c) 2025, Caltech All rights not granted herein are expressly reserved by Caltech.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Index

Constants

View Source
const Version = "0.1.0"

Variables

This section is empty.

Functions

func Eval

func Eval(p string, data interface{}) (interface{}, error)

Eval takes a dot path and interface (either a map[string]interface{} or []interface) and returns a value from the dot path or error

func EvalJSON

func EvalJSON(p string, src []byte) (interface{}, error)

EvalJSON takes a dot path plus JSON encoded as byte array and returns the value in the dot path or error

func GetDotpath added in v0.1.0

func GetDotpath(obj interface{}, path string) (interface{}, bool)

GetDotpath fetches a value from a nested map or struct using a dot-notated path expression. Supports list indices in the path with bracket notation.

func HasDotpath added in v0.1.0

func HasDotpath(obj interface{}, path string) bool

HasDotpath checks if a path exists in a nested map or struct using a dot-notated path expression.

func ToLabel added in v0.0.2

func ToLabel(s string) string

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL