Почему после Unmarshalling я получил различное количество байтов, но тот же результат после Marshalling? - PullRequest
0 голосов
/ 16 мая 2018

Я читаю геойсон с

  json, err := ioutil.ReadFile(file)

Затем я печатаю результат и вижу это

[123 32 34 116 121 112 101 34 58 32 34 70 101 97 116 117 114101 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 101 115 34 58 32 91 10 32 32 32 32 32 32 123 123 32 34 32 112 32 101 34 34 32 112 70 101 34 34 32 32 70 70101 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 58 58 32 34 80 111 105 110 116 34 44 32 34 99 111111 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 32 112 112 32 32 32 32 32 112 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 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 125 10 32 32 32 32 32 32 32 32 32 125 44 10 32 32 32 32 125 44 10 32 32 116 32 112 32 34 34 32 121 112 34 58 32 34 70 101 97 34 58 32 34 70 101 97116 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 3476 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 3232 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 44 32 32 48 46 48 93 44 32 91 49 48 53 46 4844 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 32 32 32 32 32 32 32 32 32 32 32105 101 115 34 58 32 123 10 32 32 32 32 32 32 32 32 32 32 34 112 114 111 112 48 34 34 32 32 118 97 108 117 101 48 34 44 10 32 32 32 32 32 32 32 32 32 32 32 34 112 114111 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 44 123 32 34 116 121 112 101 34 58 32 3470 101 97 116 117 114 101 34 44 10 32 32 32 32 32 32 32 32 32 32 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 3458 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 97 97 116 101 115 34 58 32 91 10 32 32 32 32 32 32 32 32 32 32 32 32 32 91 91 32 91 48 4848 46 48 44 32 48 46 48 93 44 32 91 49 48 49 46 48 44 32 48 46 48 93 44 32 32 49 48 49 46 48 44 32 49 46 48 93 44 48 32 32 46 32 93 32 10 32 32 32 32 32 32 32 32 32 32 3232 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 49 46 48 93 32 93 93 10 32 32 32 32 32 32 32 32 32 32 32 32 32 32 93 10 32 3232 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 32 34 112 114 111112 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 32 34 114 111 112 49 34 58 32 123 34 116 104 105 115 34 58 32 34 116 104 97 116 34125 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 [{Карта объектов [prop0: value0] {Point [102 0,5]}} {Карта объектов [prop0: value0 prop1: 0] {LineString [[102 0] [103 1] [104 0] [105 1]]}} {Карта объектов [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 108101 99 116 105 111 110 34 44 34 102 101 97 116 117 114 101 115 34 58 91 123 34 116 121 112 112 101 34 58 34 70 101 97 116 117 114 101 34 44 34 112 114 111 112 101 114 114 116 105 101 115 3458 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 111111 114 100 105 110 97 116 101 115 34 58 91 49 48 5044 48 46 53 93 125 125 44 123 34 116 121 112 101 34 58 34 70 101 97 116 117 114 101 34 34 34 112 114 111 112 101 114 116 105 101 115 34 58 123 34 112 114 111 112 48 34 58 34 11897 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 58 58 34 76 105 110 101 83 116 114 105 110 103 34 4434 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 44123 34 116 121 112 101 34 58 34 70 101 97 116 117 114 101 34 44 34 112 114 111 112 101 114 114 116 105 101 115 34 58 123 34 112 114 111 112 48 34 58 34 118 97 108 117 101 101 48 34 44 34112 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 116 116 121 112 101 34 58 34 80 111 108 121 103 111110 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 4948 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 [{Карта объектов [prop0: value0] {Point [102 0,5]}} {Карта объектов [prop0: value0 prop1: 0] {LineString [[102 0] [103 1] [104 0] [105 1]]}} {Карта объектов [prop0: value0 prop1: map [this: that]] {Polygon [[[100 0] [101 0] [101 1] [100 1] [100 0]]]}]]}

Почему это так?Почему у меня разное количество байтов и почему после удаления этих разных байтов я получил одинаковый результат?

1 Ответ

0 голосов
/ 16 мая 2018

Исходный файл содержит много пробелов и новых строк, вы можете увидеть их в выходных данных (32 = Пробел). json.Unmarshal() удалит все эти пробелы и json.Marshal() не добавит их снова. Если вы хотите отформатировать второй вывод, вы можете использовать json.MarshalIndent().

...