«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как демаршалировать целые числа в строковой кодировке в Go?

Как демаршалировать целые числа в строковой кодировке в Go?

Опубликовано 12 ноября 2024 г.
Просматривать:590

How to Unmarshal String-encoded Integers in Go?

Демаршалинг целых чисел в строковой кодировке в Go

При попытке демаршалинга JSON со строковыми значениями в целочисленное поле может возникнуть ошибка: «json: невозможно демаршалировать строку в значение Go типа int64». Это связано с тем, что демаршалинг JSON по умолчанию предполагает, что числовые типы, такие как int64, должны содержать числовые символы.

Проблема:
Структура Go, определяющая поле int64, получает JSON с соответствующим поле, закодированное как строка. Это несоответствие типов данных приводит к сбою процесса демаршалинга.

Решение:
Рекомендуемое решение — использовать тег «,string» в теге структуры json для целочисленного поля. . Это указывает процессу демаршалинга принимать значения типа string:

type tySurvey struct {
   Id   int64  `json:"id,string,omitempty"`
   Name string `json:"name,omitempty"`
}

Реализация:
Благодаря измененной структуре данные JSON с полем id, закодированным в виде строки, теперь можно успешно демаршалировать в объект Go типа tySurvey.

Примечание:
Важно помнить, что указание пропущения в теге не позволит декодировать пустую строку. omitempty используется исключительно для целей кодирования.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3