...

Source file src/github.com/gorilla/websocket/json.go

Documentation: github.com/gorilla/websocket

     1  // Copyright 2013 The Gorilla WebSocket Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  package websocket
     6  
     7  import (
     8  	"encoding/json"
     9  	"io"
    10  )
    11  
    12  // WriteJSON writes the JSON encoding of v as a message.
    13  //
    14  // Deprecated: Use c.WriteJSON instead.
    15  func WriteJSON(c *Conn, v interface{}) error {
    16  	return c.WriteJSON(v)
    17  }
    18  
    19  // WriteJSON writes the JSON encoding of v as a message.
    20  //
    21  // See the documentation for encoding/json Marshal for details about the
    22  // conversion of Go values to JSON.
    23  func (c *Conn) WriteJSON(v interface{}) error {
    24  	w, err := c.NextWriter(TextMessage)
    25  	if err != nil {
    26  		return err
    27  	}
    28  	err1 := json.NewEncoder(w).Encode(v)
    29  	err2 := w.Close()
    30  	if err1 != nil {
    31  		return err1
    32  	}
    33  	return err2
    34  }
    35  
    36  // ReadJSON reads the next JSON-encoded message from the connection and stores
    37  // it in the value pointed to by v.
    38  //
    39  // Deprecated: Use c.ReadJSON instead.
    40  func ReadJSON(c *Conn, v interface{}) error {
    41  	return c.ReadJSON(v)
    42  }
    43  
    44  // ReadJSON reads the next JSON-encoded message from the connection and stores
    45  // it in the value pointed to by v.
    46  //
    47  // See the documentation for the encoding/json Unmarshal function for details
    48  // about the conversion of JSON to a Go value.
    49  func (c *Conn) ReadJSON(v interface{}) error {
    50  	_, r, err := c.NextReader()
    51  	if err != nil {
    52  		return err
    53  	}
    54  	err = json.NewDecoder(r).Decode(v)
    55  	if err == io.EOF {
    56  		// One value is expected in the message.
    57  		err = io.ErrUnexpectedEOF
    58  	}
    59  	return err
    60  }
    61  

View as plain text