为什么在 Unmarshalling 之后我得到不同的字节数但在 Marshalling 之后得到相同的结果?
Why after Unmarshalling I got different num of bytes but the same result after Marshalling?
我用
阅读 geojson
json, err := ioutil.ReadFile(file)
然后我打印结果并看到这个
[123 32 34 116 121 112 101 34 58 32 34 70 101 97 116 117 114 101 67
111 108 108 101 99 116 105 111 110 34 44 10 32 32 32 32 34 102 101 97
116 117 114 101 115 34 58 32 91 10 32 32 32 32 32 32 123 32 34 116 121
112 101 34 58 32 34 70 101 97 116 117 114 101 34 44 10 32 32 32 32 32
32 32 32 34 103 101 111 109 101 116 114 121 34 58 32 123 34 116 121
112 101 34 58 32 34 80 111 105 110 116 34 44 32 34 99 111 111 114 100
105 110 97 116 101 115 34 58 32 91 49 48 50 46 48 44 32 48 46 53 93
125 44 10 32 32 32 32 32 32 32 32 34 112 114 111 112 101 114 116 105
101 115 34 58 32 123 34 112 114 111 112 48 34 58 32 34 118 97 108 117
101 48 34 125 10 32 32 32 32 32 32 32 32 125 44 10 32 32 32 32 32 32
123 32 34 116 121 112 101 34 58 32 34 70 101 97 116 117 114 101 34 44
10 32 32 32 32 32 32 32 32 34 103 101 111 109 101 116 114 121 34 58 32
123 10 32 32 32 32 32 32 32 32 32 32 34 116 121 112 101 34 58 32 34 76
105 110 101 83 116 114 105 110 103 34 44 10 32 32 32 32 32 32 32 32 32
32 34 99 111 111 114 100 105 110 97 116 101 115 34 58 32 91 10 32 32
32 32 32 32 32 32 32 32 32 32 91 49 48 50 46 48 44 32 48 46 48 93 44
32 91 49 48 51 46 48 44 32 49 46 48 93 44 32 91 49 48 52 46 48 44 32
48 46 48 93 44 32 91 49 48 53 46 48 44 32 49 46 48 93 10 32 32 32 32
32 32 32 32 32 32 32 32 93 10 32 32 32 32 32 32 32 32 32 32 125 44 10
32 32 32 32 32 32 32 32 34 112 114 111 112 101 114 116 105 101 115 34
58 32 123 10 32 32 32 32 32 32 32 32 32 32 34 112 114 111 112 48 34 58
32 34 118 97 108 117 101 48 34 44 10 32 32 32 32 32 32 32 32 32 32 34
112 114 111 112 49 34 58 32 48 46 48 10 32 32 32 32 32 32 32 32 32 32
125 10 32 32 32 32 32 32 32 32 125 44 10 32 32 32 32 32 32 123 32 34
116 121 112 101 34 58 32 34 70 101 97 116 117 114 101 34 44 10 32 32
32 32 32 32 32 32 32 34 103 101 111 109 101 116 114 121 34 58 32 123
10 32 32 32 32 32 32 32 32 32 32 32 34 116 121 112 101 34 58 32 34 80
111 108 121 103 111 110 34 44 10 32 32 32 32 32 32 32 32 32 32 32 34
99 111 111 114 100 105 110 97 116 101 115 34 58 32 91 10 32 32 32 32
32 32 32 32 32 32 32 32 32 91 32 91 49 48 48 46 48 44 32 48 46 48 93
44 32 91 49 48 49 46 48 44 32 48 46 48 93 44 32 91 49 48 49 46 48 44
32 49 46 48 93 44 10 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 91
49 48 48 46 48 44 32 49 46 48 93 44 32 91 49 48 48 46 48 44 32 48 46
48 93 32 93 10 32 32 32 32 32 32 32 32 32 32 32 32 32 93 10 32 32 32
32 32 32 32 32 32 125 44 10 32 32 32 32 32 32 32 32 32 34 112 114 111
112 101 114 116 105 101 115 34 58 32 123 10 32 32 32 32 32 32 32 32 32
32 32 34 112 114 111 112 48 34 58 32 34 118 97 108 117 101 48 34 44 10
32 32 32 32 32 32 32 32 32 32 32 34 112 114 111 112 49 34 58 32 123 34
116 104 105 115 34 58 32 34 116 104 97 116 34 125 10 32 32 32 32 32 32
32 32 32 32 32 125 10 32 32 32 32 32 32 32 32 32 125 10 32 32 32 32 32
32 32 93 10 32 32 32 32 32 125]
之后我解组并再次打印,我得到了这个
{FeatureCollection [{Feature map[prop0:value0] {Point [102
0.5]}} {Feature map[prop0:value0 prop1:0] {LineString [[102 0] [103 1] [104 0] [105 1]]}} {Feature map[prop0:value0 prop1:map[this:that]]
{Polygon [[[100 0] [101 0] [101 1] [100 1] [100 0]]]}}]}
比我整理并得到这个
[123 34 116 121 112 101 34 58 34 70 101 97 116 117 114 101 67 111 108
108 101 99 116 105 111 110 34 44 34 102 101 97 116 117 114 101 115 34
58 91 123 34 116 121 112 101 34 58 34 70 101 97 116 117 114 101 34 44
34 112 114 111 112 101 114 116 105 101 115 34 58 123 34 112 114 111
112 48 34 58 34 118 97 108 117 101 48 34 125 44 34 103 101 111 109 101
116 114 121 34 58 123 34 116 121 112 101 34 58 34 80 111 105 110 116
34 44 34 99 111 111 114 100 105 110 97 116 101 115 34 58 91 49 48 50
44 48 46 53 93 125 125 44 123 34 116 121 112 101 34 58 34 70 101 97
116 117 114 101 34 44 34 112 114 111 112 101 114 116 105 101 115 34 58
123 34 112 114 111 112 48 34 58 34 118 97 108 117 101 48 34 44 34 112
114 111 112 49 34 58 48 125 44 34 103 101 111 109 101 116 114 121 34
58 123 34 116 121 112 101 34 58 34 76 105 110 101 83 116 114 105 110
103 34 44 34 99 111 111 114 100 105 110 97 116 101 115 34 58 91 91 49
48 50 44 48 93 44 91 49 48 51 44 49 93 44 91 49 48 52 44 48 93 44 91
49 48 53 44 49 93 93 125 125 44 123 34 116 121 112 101 34 58 34 70 101
97 116 117 114 101 34 44 34 112 114 111 112 101 114 116 105 101 115 34
58 123 34 112 114 111 112 48 34 58 34 118 97 108 117 101 48 34 44 34
112 114 111 112 49 34 58 123 34 116 104 105 115 34 58 34 116 104 97
116 34 125 125 44 34 103 101 111 109 101 116 114 121 34 58 123 34 116
121 112 101 34 58 34 80 111 108 121 103 111 110 34 44 34 99 111 111
114 100 105 110 97 116 101 115 34 58 91 91 91 49 48 48 44 48 93 44 91
49 48 49 44 48 93 44 91 49 48 49 44 49 93 44 91 49 48 48 44 49 93 44
91 49 48 48 44 48 93 93 93 125 125 93 125]
解组后我得到了相同的
{FeatureCollection [{Feature map[prop0:value0] {Point [102 0.5]}}
{Feature map[prop0:value0 prop1:0] {LineString [[102 0] [103 1] [104
0] [105 1]]}} {Feature map[prop0:value0 prop1:map[this:that]] {Polygon
[[[100 0] [101 0] [101 1] [100 1] [100 0]]]}}]}
为什么会这样?为什么我有不同数量的字节,为什么在解组这些不同的字节后我得到相同的结果?
原始文件包含许多空格和换行符,您可以在输出中看到它们 (32
= Space)。 json.Unmarshal()
将删除所有这些空格并且 json.Marshal()
不会再次添加它们。如果你想漂亮地格式化你的第二个输出,你可以使用 json.MarshalIndent()
.
我用
阅读 geojson json, err := ioutil.ReadFile(file)
然后我打印结果并看到这个
[123 32 34 116 121 112 101 34 58 32 34 70 101 97 116 117 114 101 67 111 108 108 101 99 116 105 111 110 34 44 10 32 32 32 32 34 102 101 97 116 117 114 101 115 34 58 32 91 10 32 32 32 32 32 32 123 32 34 116 121 112 101 34 58 32 34 70 101 97 116 117 114 101 34 44 10 32 32 32 32 32 32 32 32 34 103 101 111 109 101 116 114 121 34 58 32 123 34 116 121 112 101 34 58 32 34 80 111 105 110 116 34 44 32 34 99 111 111 114 100 105 110 97 116 101 115 34 58 32 91 49 48 50 46 48 44 32 48 46 53 93 125 44 10 32 32 32 32 32 32 32 32 34 112 114 111 112 101 114 116 105 101 115 34 58 32 123 34 112 114 111 112 48 34 58 32 34 118 97 108 117 101 48 34 125 10 32 32 32 32 32 32 32 32 125 44 10 32 32 32 32 32 32 123 32 34 116 121 112 101 34 58 32 34 70 101 97 116 117 114 101 34 44 10 32 32 32 32 32 32 32 32 34 103 101 111 109 101 116 114 121 34 58 32 123 10 32 32 32 32 32 32 32 32 32 32 34 116 121 112 101 34 58 32 34 76 105 110 101 83 116 114 105 110 103 34 44 10 32 32 32 32 32 32 32 32 32 32 34 99 111 111 114 100 105 110 97 116 101 115 34 58 32 91 10 32 32 32 32 32 32 32 32 32 32 32 32 91 49 48 50 46 48 44 32 48 46 48 93 44 32 91 49 48 51 46 48 44 32 49 46 48 93 44 32 91 49 48 52 46 48 44 32 48 46 48 93 44 32 91 49 48 53 46 48 44 32 49 46 48 93 10 32 32 32 32 32 32 32 32 32 32 32 32 93 10 32 32 32 32 32 32 32 32 32 32 125 44 10 32 32 32 32 32 32 32 32 34 112 114 111 112 101 114 116 105 101 115 34 58 32 123 10 32 32 32 32 32 32 32 32 32 32 34 112 114 111 112 48 34 58 32 34 118 97 108 117 101 48 34 44 10 32 32 32 32 32 32 32 32 32 32 34 112 114 111 112 49 34 58 32 48 46 48 10 32 32 32 32 32 32 32 32 32 32 125 10 32 32 32 32 32 32 32 32 125 44 10 32 32 32 32 32 32 123 32 34 116 121 112 101 34 58 32 34 70 101 97 116 117 114 101 34 44 10 32 32 32 32 32 32 32 32 32 34 103 101 111 109 101 116 114 121 34 58 32 123 10 32 32 32 32 32 32 32 32 32 32 32 34 116 121 112 101 34 58 32 34 80 111 108 121 103 111 110 34 44 10 32 32 32 32 32 32 32 32 32 32 32 34 99 111 111 114 100 105 110 97 116 101 115 34 58 32 91 10 32 32 32 32 32 32 32 32 32 32 32 32 32 91 32 91 49 48 48 46 48 44 32 48 46 48 93 44 32 91 49 48 49 46 48 44 32 48 46 48 93 44 32 91 49 48 49 46 48 44 32 49 46 48 93 44 10 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 91 49 48 48 46 48 44 32 49 46 48 93 44 32 91 49 48 48 46 48 44 32 48 46 48 93 32 93 10 32 32 32 32 32 32 32 32 32 32 32 32 32 93 10 32 32 32 32 32 32 32 32 32 125 44 10 32 32 32 32 32 32 32 32 32 34 112 114 111 112 101 114 116 105 101 115 34 58 32 123 10 32 32 32 32 32 32 32 32 32 32 32 34 112 114 111 112 48 34 58 32 34 118 97 108 117 101 48 34 44 10 32 32 32 32 32 32 32 32 32 32 32 34 112 114 111 112 49 34 58 32 123 34 116 104 105 115 34 58 32 34 116 104 97 116 34 125 10 32 32 32 32 32 32 32 32 32 32 32 125 10 32 32 32 32 32 32 32 32 32 125 10 32 32 32 32 32 32 32 93 10 32 32 32 32 32 125]
之后我解组并再次打印,我得到了这个
{FeatureCollection [{Feature map[prop0:value0] {Point [102 0.5]}} {Feature map[prop0:value0 prop1:0] {LineString [[102 0] [103 1] [104 0] [105 1]]}} {Feature map[prop0:value0 prop1:map[this:that]] {Polygon [[[100 0] [101 0] [101 1] [100 1] [100 0]]]}}]}
比我整理并得到这个
[123 34 116 121 112 101 34 58 34 70 101 97 116 117 114 101 67 111 108 108 101 99 116 105 111 110 34 44 34 102 101 97 116 117 114 101 115 34 58 91 123 34 116 121 112 101 34 58 34 70 101 97 116 117 114 101 34 44 34 112 114 111 112 101 114 116 105 101 115 34 58 123 34 112 114 111 112 48 34 58 34 118 97 108 117 101 48 34 125 44 34 103 101 111 109 101 116 114 121 34 58 123 34 116 121 112 101 34 58 34 80 111 105 110 116 34 44 34 99 111 111 114 100 105 110 97 116 101 115 34 58 91 49 48 50 44 48 46 53 93 125 125 44 123 34 116 121 112 101 34 58 34 70 101 97 116 117 114 101 34 44 34 112 114 111 112 101 114 116 105 101 115 34 58 123 34 112 114 111 112 48 34 58 34 118 97 108 117 101 48 34 44 34 112 114 111 112 49 34 58 48 125 44 34 103 101 111 109 101 116 114 121 34 58 123 34 116 121 112 101 34 58 34 76 105 110 101 83 116 114 105 110 103 34 44 34 99 111 111 114 100 105 110 97 116 101 115 34 58 91 91 49 48 50 44 48 93 44 91 49 48 51 44 49 93 44 91 49 48 52 44 48 93 44 91 49 48 53 44 49 93 93 125 125 44 123 34 116 121 112 101 34 58 34 70 101 97 116 117 114 101 34 44 34 112 114 111 112 101 114 116 105 101 115 34 58 123 34 112 114 111 112 48 34 58 34 118 97 108 117 101 48 34 44 34 112 114 111 112 49 34 58 123 34 116 104 105 115 34 58 34 116 104 97 116 34 125 125 44 34 103 101 111 109 101 116 114 121 34 58 123 34 116 121 112 101 34 58 34 80 111 108 121 103 111 110 34 44 34 99 111 111 114 100 105 110 97 116 101 115 34 58 91 91 91 49 48 48 44 48 93 44 91 49 48 49 44 48 93 44 91 49 48 49 44 49 93 44 91 49 48 48 44 49 93 44 91 49 48 48 44 48 93 93 93 125 125 93 125]
解组后我得到了相同的
{FeatureCollection [{Feature map[prop0:value0] {Point [102 0.5]}} {Feature map[prop0:value0 prop1:0] {LineString [[102 0] [103 1] [104 0] [105 1]]}} {Feature map[prop0:value0 prop1:map[this:that]] {Polygon [[[100 0] [101 0] [101 1] [100 1] [100 0]]]}}]}
为什么会这样?为什么我有不同数量的字节,为什么在解组这些不同的字节后我得到相同的结果?
原始文件包含许多空格和换行符,您可以在输出中看到它们 (32
= Space)。 json.Unmarshal()
将删除所有这些空格并且 json.Marshal()
不会再次添加它们。如果你想漂亮地格式化你的第二个输出,你可以使用 json.MarshalIndent()
.