2015-02-01 3 views
1

Я получаю нормальный срез байт из базы (среза по цветовому json.Marshal) и попытаться расшифровать их, но json.unmarshal() - возврат ноляGo: json.unmarshal() - возврат ноль

Код:

coded := redis.LoadFromBase() 
uncoded := json.Unmarshal(coded, &p) 

fmt.Println("Bytes:", coded) 
fmt.Println("Unmarshalled:", uncoded) 

Возвращается:

Bytes: [123 34 84 105 116 108 101 34 58 34 97 34 44 34 67 111 110 116 101 110 116 34 58 34 98 34 125] 
Unmarshalled: <nil> 

LoadFromBase() работает отлично

ответ

1

Вы печатаете ошибку, возвращенную json.Unmarshal не фактическое декодированное значение. Это nil, поэтому все в порядке.

Оно должно быть:

coded := redis.LoadFromBase() 
err := json.Unmarshal(coded, &p) 
if (err != nil) { 
    // handle error here 
} 

fmt.Println("Bytes:", coded) 
fmt.Println("Unmarshalled:", p) 
+0

Да, теперь работает отлично К сожалению, я не читал документацию. –

Смежные вопросы