Разбор значения JSON 'NaN' в Go

Когда я пытаюсь удалить этот объект JSON из API Microsoft Web Ngram:

{"backoff": NaN, "cookie": "", "probabilities": [], "words": []}

Я получаю сообщение об ошибке: "недопустимый символ "N" ищет начало значения"

Я знаю, что NaN не является допустимым JSON, но данные не мои, и мне нужен способ их анализа. Есть ли простой способ сделать это в Go?


person a3onstorm    schedule 28.07.2014    source источник


Ответы (1)


Вы можете заменить его значением null (или 0, или любым другим допустимым значением):

b, err := ioutil.ReadAll(resp)
//check err
b = bytes.Replace(b, []byte(":NaN"), []byte(":null"), -1) 

//json.Decode(b)
person OneOfOne    schedule 28.07.2014
comment
Хм, я думал, что это будет очень медленно, но это увеличивает время выполнения только в 1,2-1,5 раза, что совершенно нормально. Ваше здоровье :) - person a3onstorm; 29.07.2014