Package Main
  
 
 Import (
  
 
 "FMT"
  
 
 "Encoding/json"
  
 
 "Bytes"
  
 
 )
  
 
 Type Device struct{
  
 
 SN string ' JSON: ' s ' '
  
 
 Model string ' JSON: ' M,omitempty '
  
 
 }
  
 
 Func (d Device) String () string{
  
 
 Return to FMT. Sprintf ("serial:%s model:%s", d.sn, D.model)
  
 
 }
  
 
 var m = map[string]interface{}{
  
 
 "SN": "123456",
  
 
 "Platform": 602,
  
 
 "Force": true,
  
 
 "Location": []string{"Paris", "Beijing"},
  
 
 "DECR": "",
  
 
 }
  
 
 Func Encodejson (v interface{}) ([]byte, error) {
  
 
 var buf bytes. Buffer
  
 
 Encoder: = json. Newencoder (&BUF)
  
 
 Encoder. Setescapehtml (False)
  
 
 If err: = Encoder. Encode (v); Err! = nil{
  
 
 return nil, err
  
 
 }
  
 
 Return BUF. Bytes (), nil
  
 
 }
  
 
 Func Main () {
  
 
 If s, err: = json. Marshal (m); Err! = nil{
  
 
 Panic (ERR)
  
 
 }else{
  
 
 Fmt. Println (string (s))
  
 
 }
  
 
 If b, err: = Encodejson (M); Err! = nil{
  
 
 Panic (ERR)
  
 
 }else{
  
 
 Fmt. Println (string (b))
  
 
 }
  
 
 D: = device{sn: "123456", Model: "Http://baidu.com"}
  
 
 If ds, Err: = Encodejson (d); Err! = nil{
  
 
 Panic (ERR)
  
 
 }else{
  
 
 Fmt. Println (String (DS))
  
 
 }
  
 
 }