【发布时间】:2012-08-05 09:57:08
【问题描述】:
我一直在尝试使用 RESTful 方法使用 Google Transliterate API,因为它很容易通过服务器端语言(此处为 C#)来实现。
所以,我遇到了这种 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" : [
"इंडिया","इन्डिया","इण्डिया","ईन्डिया","इनडिया",
]
},
]
我尝试HttpWebRequest 和HttpWebResponse 来获取 JSON,但它在 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", ] }, ]
所以,我应用了这个article 并通过它传递了 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 ','.
第二个问题:如果到目前为止我做得对,我可以得到一些帮助解析印地语单词吗?我应该采取什么方法最好使用System.Web.Script.Serialization;。最终我想获取印地语文本进行进一步处理。
请帮忙,谢谢。
【问题讨论】:
-
@SaberAmani 做到了。感谢您的建议。
标签: c# asp.net json rest unicode