X7ROOT File Manager
Current Path:
/opt/golang/1.17.2/src/encoding/json
opt
/
golang
/
1.17.2
/
src
/
encoding
/
json
/
📁
..
📄
bench_test.go
(8.57 KB)
📄
decode.go
(35.29 KB)
📄
decode_test.go
(61.95 KB)
📄
encode.go
(38.39 KB)
📄
encode_test.go
(28.27 KB)
📄
example_marshaling_test.go
(1.23 KB)
📄
example_test.go
(6.06 KB)
📄
example_text_marshaling_test.go
(1.23 KB)
📄
fold.go
(3.39 KB)
📄
fold_test.go
(2.89 KB)
📄
fuzz.go
(798 B)
📄
indent.go
(3.4 KB)
📄
number_test.go
(2.2 KB)
📄
scanner.go
(16.03 KB)
📄
scanner_test.go
(6.16 KB)
📄
stream.go
(12.92 KB)
📄
stream_test.go
(11.18 KB)
📄
tables.go
(4.16 KB)
📄
tagkey_test.go
(2.67 KB)
📄
tags.go
(1.05 KB)
📄
tags_test.go
(565 B)
📁
testdata
Editing: example_marshaling_test.go
// Copyright 2016 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package json_test import ( "encoding/json" "fmt" "log" "strings" ) type Animal int const ( Unknown Animal = iota Gopher Zebra ) func (a *Animal) UnmarshalJSON(b []byte) error { var s string if err := json.Unmarshal(b, &s); err != nil { return err } switch strings.ToLower(s) { default: *a = Unknown case "gopher": *a = Gopher case "zebra": *a = Zebra } return nil } func (a Animal) MarshalJSON() ([]byte, error) { var s string switch a { default: s = "unknown" case Gopher: s = "gopher" case Zebra: s = "zebra" } return json.Marshal(s) } func Example_customMarshalJSON() { blob := `["gopher","armadillo","zebra","unknown","gopher","bee","gopher","zebra"]` var zoo []Animal if err := json.Unmarshal([]byte(blob), &zoo); err != nil { log.Fatal(err) } census := make(map[Animal]int) for _, animal := range zoo { census[animal] += 1 } fmt.Printf("Zoo Census:\n* Gophers: %d\n* Zebras: %d\n* Unknown: %d\n", census[Gopher], census[Zebra], census[Unknown]) // Output: // Zoo Census: // * Gophers: 3 // * Zebras: 2 // * Unknown: 3 }
Upload File
Create Folder