gopkg.in/alecthomas/gometalinter.v3@v3.0.0/_linters/src/github.com/stretchr/objx/doc.go (about)

     1  /*
     2  Objx - Go package 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 preditable 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