...

Source file src/github.com/stretchr/objx/doc.go

Documentation: github.com/stretchr/objx

     1  /*
     2  Package objx provides utilities for dealing with maps, slices, JSON and other data.
     3  
     4  # Overview
     5  
     6  Objx provides the `objx.Map` type, which is a `map[string]interface{}` that exposes
     7  a powerful `Get` method (among others) that allows you to easily and quickly get
     8  access to data within the map, without having to worry too much about type assertions,
     9  missing data, default values etc.
    10  
    11  # Pattern
    12  
    13  Objx uses a predictable pattern to make access data from within `map[string]interface{}` easy.
    14  Call one of the `objx.` functions to create your `objx.Map` to get going:
    15  
    16  	m, err := objx.FromJSON(json)
    17  
    18  NOTE: Any methods or functions with the `Must` prefix will panic if something goes wrong,
    19  the rest will be optimistic and try to figure things out without panicking.
    20  
    21  Use `Get` to access the value you're interested in.  You can use dot and array
    22  notation too:
    23  
    24  	m.Get("places[0].latlng")
    25  
    26  Once you have sought the `Value` you're interested in, you can use the `Is*` methods to determine its type.
    27  
    28  	if m.Get("code").IsStr() { // Your code... }
    29  
    30  Or you can just assume the type, and use one of the strong type methods to extract the real value:
    31  
    32  	m.Get("code").Int()
    33  
    34  If there's no value there (or if it's the wrong type) then a default value will be returned,
    35  or you can be explicit about the default value.
    36  
    37  	Get("code").Int(-1)
    38  
    39  If you're dealing with a slice of data as a value, Objx provides many useful methods for iterating,
    40  manipulating and selecting that data.  You can find out more by exploring the index below.
    41  
    42  # Reading data
    43  
    44  A simple example of how to use Objx:
    45  
    46  	// Use MustFromJSON to make an objx.Map from some JSON
    47  	m := objx.MustFromJSON(`{"name": "Mat", "age": 30}`)
    48  
    49  	// Get the details
    50  	name := m.Get("name").Str()
    51  	age := m.Get("age").Int()
    52  
    53  	// Get their nickname (or use their name if they don't have one)
    54  	nickname := m.Get("nickname").Str(name)
    55  
    56  # Ranging
    57  
    58  Since `objx.Map` is a `map[string]interface{}` you can treat it as such.
    59  For example, to `range` the data, do what you would expect:
    60  
    61  	m := objx.MustFromJSON(json)
    62  	for key, value := range m {
    63  	  // Your code...
    64  	}
    65  */
    66  package objx
    67  

View as plain text