Cómo analizar la cadena JSON que contiene "NaN" en Node.js

Tener una aplicación node.js que reciba cadenas de datos JSON que contengan el NaN literal, como

 "[1, 2, 3, NaN, 5, 6]"

Esto se estrellaJSON.parse(...) en Node.js. Me gustaría analizarlo, si puedo en un objeto.

Lo séNaN no es parte de JSON spec. La mayoría de los enlaces SO (enviando NaN en json) sugerir para arreglar la salida.

Aquí, aunque los datos se producen en un servidor que no controlo, es por una biblioteca comercial de Java donde puedo ver el código fuente. Y es producido por la biblioteca Gson de Google:

private Gson gson = (new GsonBuilder().serializeSpecialFloatingPointValues().create()); 
... 
gson.toJson(data[i], Vector.class, jsonOut)

Así que eso parece ser una fuente legítima. Y según elAPI de Gson Javadoc dice que debería ser capaz de analizarlo:

La sección 2.4 de la especificación JSON no permite valores dobles especiales (NaN, Infinity, -Infinity). Sin embargo, la especificación de Javascript (ver sección 4.3.20, 4.3.22, 4.3.23) permite estos valores como valores de Javascript válidos. Además, la mayoría de los motores de JavaScript aceptarán estos valores especiales en JSON sin problemas. Por lo tanto, a nivel práctico, tiene sentido aceptar estos valores como JSON válido, aunque la especificación de JSON no los permita.

A pesar de eso, esto falla tanto en Node.js como en Chrome:JSON.parse('[1,2,3,NaN,"5"]')

¿Hay una bandera para establecer en JSON.parse ()? O un analizador alternativo que aceptaNaN como un literal?

He estado buscando en Google por un tiempo, pero parece que no puedo encontrar un documento sobre este problema.

PHP: ¿Cómo codificar números infinitos o NaN a JSON?

Respuestas a la pregunta(4)

Su respuesta a la pregunta