Я нашел способ получить его без использования внешнего API
using (var w = new WebClient())
{
var json_data = string.Empty;
string url = "YOUR URL";
// attempt to download JSON data as a string
try
{
json_data = w.DownloadString(url);
JavaScriptSerializer jsSerializer = new JavaScriptSerializer();
var result = jsSerializer.DeserializeObject(json_data);
Dictionary<string, object> obj2 = new Dictionary<string, object>();
obj2=(Dictionary<string,object>)(result);
string val=obj2["KEYNAME"].ToString();
}
catch (Exception) { }
// if string with JSON data is not empty, deserialize it to class and return its instance
}
Я счастливо использовал бы JavaScriptSerializer
- но если в сомнении, рассмотрите третью возможность - Json.NET . Поскольку это - третья сторона, это не связано с решениями MS..., который является обоюдоострым мечом, конечно - но часто легче добраться, незначительная фиксация относилась к автономному стороннему libary.
Я не видел категорическое объяснение. Было довольно много людей нарушение, когда JavaScriptSerializer был сделан устаревшим.
Scott Gu сделал этот комментарий о его блоге, говоря, что он думал, отмечая его, поскольку устаревший не имел смысла.
JavaScriptSerializer в настоящее время отмечается устаревший - хотя я не уверен почему (собирался спросить кого-то об этом сегодня). Это очень удобно. Обратите внимание, что устаревший не означает удаление в.NET 3.5 - это будет поддерживаться по крайней мере другая версия или два (или дольше если я могу убедить их).
я предполагаю, возможно, что он действительно убеждал их :-)
, что я продолжил использовать JavaScriptSerializer в качестве его намного более прямой, чем DataContractJsonSerializer.