Если вы, как и я, не можете контролировать код сериализации, вы можете иметь дело со значениями NaN, заменив их нулевым или любым другим значением в качестве хака, как показано ниже:
$.get("file.json", theCallback)
.fail(function(data) {
theCallback(JSON.parse(data.responseText.replace(/NaN/g,'null')));
} );
По сути, .fail будет вызываться, когда оригинальный анализатор json обнаружит недопустимый токен. Затем замена строки используется для замены недействительных токенов. В моем случае это исключение для сериализатора, возвращающего значения NaN, поэтому этот метод является лучшим подходом. Если результаты обычно содержат недопустимый токен, лучше не использовать $ .get, а вместо этого вручную извлекать результат JSON и всегда выполнять замену строки.