私はこのようにグーグルの辞書APIを呼び出します:
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"));
ただし、このコードは正しく解析できないという応答があります。
json = json.Replace("dict_api.callbacks.id100(", "").Replace(",200,null)", "");
JObject o = JObject.Parse(json);
解析はこれに遭遇すると死にます:
"entries":[{"type":"example","terms":[{"type":"text","text":"\x3cem\x3ebars\x3c/em\x3e of sunlight shafting through the broken windows","language":"en"}]}]}
The
\ x3cem \ x3ebars \ x
ものは解析を殺します
このJSONP応答をJSON.NETで処理する方法はありますか?
別の「JSONPの解析」の質問に対するaquinasの回答は、JSONP部分で処理するための優れた正規表現を示しています(この場合は正規表現を微調整する必要があるかもしれません)。したがって、ここでの主要な部分は、16進エンコードされた文字の処理方法です。x = Regex.Replace(x, @"^.+?\(|\)$", "");