code: func jsonToMap(marshaled []byte) (map[string]interface{}, error) {
  	tree := make(map[string]interface{})
  	d := json.NewDecoder(bytes.NewReader(marshaled))
  	d.UseNumber()
  	err := d.Decode(&tree)
  	if err != nil {
  		return nil, fmt.Errorf("error unmarshaling intermediate JSON: %s", err)
  	}
  	return tree, nil
  }
docs: // jsonToMap allocates a map[string]interface{}, unmarshals a JSON document into it
  // and returns it, or error