mirror of
https://github.com/golang/go.git
synced 2024-09-30 06:47:04 +00:00
json: expose map in generic representation
R=r, r1 https://golang.org/cl/157146
This commit is contained in:
parent
8ebd7f7167
commit
c95c27a91f
@ -33,6 +33,7 @@ type Json interface {
|
||||
Get(s string) Json; // field lookup (MapKind)
|
||||
Elem(i int) Json; // element lookup (ArrayKind)
|
||||
Len() int; // length (ArrayKind, MapKind)
|
||||
Map() map[string]Json; // map form (MapKind)
|
||||
}
|
||||
|
||||
// JsonToString returns the textual JSON syntax representation
|
||||
@ -63,6 +64,7 @@ func (*_Null) Bool() bool { return false }
|
||||
func (*_Null) Get(s string) Json { return Null }
|
||||
func (*_Null) Elem(int) Json { return Null }
|
||||
func (*_Null) Len() int { return 0 }
|
||||
func (*_Null) Map() map[string]Json { return nil }
|
||||
|
||||
type _String struct {
|
||||
s string;
|
||||
@ -158,6 +160,7 @@ func (j *_Map) String() string {
|
||||
s += "}";
|
||||
return s;
|
||||
}
|
||||
func (j *_Map) Map() map[string]Json { return j.m }
|
||||
|
||||
// Walk evaluates path relative to the JSON object j.
|
||||
// Path is taken as a sequence of slash-separated field names
|
||||
|
@ -5,6 +5,7 @@
|
||||
package json
|
||||
|
||||
import (
|
||||
"reflect";
|
||||
"testing";
|
||||
)
|
||||
|
||||
@ -73,4 +74,7 @@ func TestJsonMap(t *testing.T) {
|
||||
t.Errorf("MapTest: Walk(%#q) => %v, want %v", k, v1, v)
|
||||
}
|
||||
}
|
||||
if !reflect.DeepEqual(values, mapv.Map()) {
|
||||
t.Errorf("DeepEqual(values, mapv.Map()) failed")
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user