¿Cómo analizar JSONP mal formado con caracteres codificados en hexadecimal utilizando JSON.NET?

Hago una llamada a la api del diccionario de google de esta manera:

var json = new WebClient().DownloadString(string.Format(@"http://www.google.com/dictionary/json?callback=dict_api.callbacks.id100&q={0}&sl=en&tl=en", "bar"));

Sin embargo, recibí una respuesta que este código no puede analizar correctamente:

json = json.Replace("dict_api.callbacks.id100(", "").Replace(",200,null)", "");
JObject o = JObject.Parse(json);

El parse muere al encontrar esto:

"entries":[{"type":"example","terms":[{"type":"text","text":"\x3cem\x3ebars\x3c/em\x3e of sunlight shafting through the broken windows","language":"en"}]}]}

los

\ x3cem \ x3ebars \ x

cosas mata el análisis

¿Hay alguna manera de manejar esta respuesta JSONP con JSON.NET?

losresponder poraquinas a otra pregunta "Parse JSONP" muestra una buena expresión regularx = Regex.Replace(x, @"^.+?\(|\)$", ""); para manejar con la parte JSONP (puede que tenga que modificar las expresiones regulares para este caso), por lo que la parte principal aquí es cómo tratar con los caracteres codificados en hexadecimal.

Respuestas a la pregunta(2)

Su respuesta a la pregunta