サーバー側の言語 (ここでは C#) を介して簡単に使用できるため、RESTful アプローチを使用して Google Transliterate API を使用しようとしています。
そのため、次のURL 形式に出くわしました: http://www.google.com/transliterate/indic?tlqt=1&langpair=en|hi&text=bharat%2Cindia&tl_app=3これは、次の形式で JSON を返します。
[
{
"ew" : "bharat",
"hws" : [
"भारत","भरत","भरात","भारात","बहरत",
]
},
{
"ew" : "india",
"hws" : [
"इंडिया","इन्डिया","इण्डिया","ईन्डिया","इनडिया",
]
},
]
JSON を取得しようHttpWebRequest
とHttpWebResponse
しましたが、Web ブラウザーでは次のような値が Unicode で返されました。
[ { "ew" : "bharat", "hws" : [ "\u092D\u093E\u0930\u0924","\u092D\u0930\u0924","\u092D\u0930\u093E\u0924","\u092D\u093E\u0930\u093E\u0924","\u092C\u0939\u0930\u0924", ] }, { "ew" : "india", "hws" : [ "\u0907\u0902\u0921\u093F\u092F\u093E","\u0907\u0928\u094D\u0921\u093F\u092F\u093E","\u0907\u0923\u094D\u0921\u093F\u092F\u093E","\u0908\u0928\u094D\u0921\u093F\u092F\u093E","\u0907\u0928\u0921\u093F\u092F\u093E", ] }, ]
そこで、この記事を適用し、それを介してJSON文字列を渡すと、次のように返されました。
[ { "ew" : "bharat", "hws" : [ "भारत","भरत","भरात","भारात","बहरत", ] }, { "ew" : "india", "hws" : [ "इंडिया","इन्डिया","इण्डिया","ईन्डिया","इनडिया", ] }, ]
最初の質問:これまでのところ、私はそれを正しく行っていますか? ブラウザでは最後の が表示されないため、HTML ソースに" ] "
は" ] "
存在します (なぜそうなったのかは不明です)。また、それを解析しようとすると、次を使用します(この手法の使用は間違っている可能性があります):
var jss = new JavaScriptSerializer();
var dict = jss.Deserialize<Dictionary<string, dynamic>>(the_JSON_string);
次のように言ってエラーが表示されます:
Invalid array passed in, extra trailing ','.
2 番目の質問: 今のところ問題がなければ、ヒンディー語の構文解析を手伝ってもらえますか? 好ましくはどのようなアプローチを取るべきですかSystem.Web.Script.Serialization;
。最終的には、さらに処理するためにヒンディー語のテキストを取得したいと考えています。
助けてください、ありがとう。