hitakiri
@hitakiri

Как правильно преобразовать json в struct?

Сервер получает строку json от клиента:
{
    "progectName": "fgrr",
    "progectDesc": "rgd",
    "progectType": [
        "1",
        "2"
    ],
    "adrFullPath": "w3rw3r",
    "adrInParam": "r3wr",
    "adrOutParam": "fsefse",
    "domains": [
        {
            "key": 1,
            "value": "sefsef"
        }
    ]
}


далее строка должна переводится в структуру:
type ProgectData struct {
	ProgectName string      `json: "progectName"`
	ProgectDesc string      `json: "progectDesc"`
	ProgectType []string    `json: "progectType"`
	AdrFullPath string      `json: "adrFullPath"`
	AdrInParam  string      `json: "adrInParam"`
	AdrOutParam string      `json: "adrOutParam"`
	Domains     DomainsData `json: "domains"`
}

type DomainsData struct {
	Key   int    `json: "key"`
	Value string `json: "value"`
}

func Dsd(d string) ProgectData {
	text := []byte(d)
	var s ProgectData
	err := json.Unmarshal(text, &s)
	if err != nil {
		CheckErr(err)
	}
	return s
}


Данный код выдаёт ошибку:
invalid character 'e' in literal null (expecting 'u')
Нашел информацию, что данная ошибка возникает при неправильном сочетании структуры и json. Но не могу найти косяк.

P.s. Всем большое спасибо. DomainsData действительно надо перевести в массив. Т.е. Domains []DomainsData `json: "domains"`
Причина по которой это не работало была в компиляторе. После переустановки всё нормально заработало ( т.е. сначала проверил на другом компе и всё ок).
  • Вопрос задан
  • 296 просмотров
Решения вопроса 2
У вас в json domains это массив DomainsData. А в struct это экземпляр DomainsData
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы