Попытка разобрать объект JSON через Go, выполнить итерацию по записям и распечатать только выбранные поля. Возникла проблема с невозможностью ссылки во время печати с использованием fmt.
JSON Структура объекта:
type myBalanceInfo struct {
Name string `json:"name"`
Id int64 `json:"id"`
Balances map[string]myBalance `json:"balances"`
}
type myBalance[]myBalanceInfo
type myBalance struct {
Available decimal.Decimal `json:"available"`
Balance decimal.Decimal `json:"balance"`
}
temp. json:
{
"abc": {
"name": "abc",
"id": 1,
"balances": {
"acc1": {
"available": "1.2",
"balance": "1.2"
},
"acc2": {
"available": "2.000001",
"balance": "2.000001"
},
"acc3": {
"available": "0.000001",
"balance": "0.000001"
},
"acc4": {
"available": "1000",
"balance": "1000"
}
}
}
}
Main:
jsonInputFile := os.Open("temp.json")
defer jsonInputFile.Close()
jsonByteValue, _ := ioutil.ReadAll(jsonInputFile )
var data []myBalanceInfo
json.Unmarshal([]byte(jsonByteValue), &data )
for i := 0; i < (len(data)); i++ {
fmt.Println("ID: " + strconv.FormatInt(data[i].Id, 10))
fmt.Println("Balance: " + decimal.NewFromString(data[i].Balance))
}
Ошибка:
Недопустимая операция: «Баланс:» + walletData [i]. Баланс (несоответствие типов строки и десятичного. Десятичное) »