Csharp/C#教程:寻找带有JSON客户端库的REST分享


寻找带有JSON客户端库的REST

我需要连接到通过REST接口提供JSON的端点。 我无法找到任何以连贯的方式结合这两种技术的东西。

我正在寻找一个能让我快速入门的图书馆。

您可以使用Json.Net库和此扩展类来使用DynamicObject

一些用法示例:

 public static void GoogleGeoCode(string address) { string url = "https://maps.googleapis.com/maps/api/geocode/json?sensor=true&address="; dynamic googleResults = new Uri(url + address).GetDynamicJsonObject(); foreach (var result in googleResults.results) { Console.WriteLine("[" + result.geometry.location.lat + "," + result.geometry.location.lng + "] " + result.formatted_address); } } public static void GoogleSearch(string keyword) { string url = "https://ajax.googleapis.com/ajax/services/search/web?v=1.0&rsz=8&q="; dynamic googleResults = new Uri(url + keyword).GetDynamicJsonObject(); foreach (var result in googleResults.responseData.results) { Console.WriteLine( result.titleNoFormatting + "n" + result.content + "n" + result.unescapedUrl + "n"); } } public static void Twitter(string screenName) { string url = "https://api.twitter.com/1/users/lookup.json?screen_name=" + screenName; dynamic result = new Uri(url).GetDynamicJsonObject(); foreach (var entry in result) { Console.WriteLine(entry.name + " " + entry.status.created_at); } } public static void Wikipedia(string query) { string url = "https://en.wikipedia.org/w/api.php?action=opensearch&search=" + query +"&format=json"; dynamic result = new Uri(url).GetDynamicJsonObject(); Console.WriteLine("QUESTION: " + result[0]); foreach (var entry in result[1]) { Console.WriteLine("ANSWER: " + entry); } } 

编辑:

这是没有DynamicObject另一个示例

 public static void GoogleSearch2(string keyword) { string url = "https://ajax.googleapis.com/ajax/services/search/web?v=1.0&rsz=8&q="+keyword; using(WebClient wc = new WebClient()) { wc.Encoding = System.Text.Encoding.UTF8; wc.Headers["User-Agent"] = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET4.0C; .NET4.0E)"; string jsonStr = wc.DownloadString(url); JObject jObject = (JObject)JsonConvert.DeserializeObject(jsonStr); foreach (JObject result in jObject["responseData"]["results"]) { Console.WriteLine( result["titleNoFormatting"] + "n" + result["content"] + "n" + result["unescapedUrl"] + "n"); } } } 

我会看看RestSharp 。 这是非常直接的起床和运行,并有一个积极的追随者。

入门指南: https : //github.com/restsharp/RestSharp/wiki

反序列化: https : //github.com/restsharp/RestSharp/wiki/Deserialization

WCF Web API中的HttpCLient和JSONValue类型可以帮助您实现目标。 下载源代码并查看示例。 在客户端上有许多用于使用JSON的示例。 https://wcf.codeplex.com/releases

另见

https://blog.alexonasp.net/

ServiceStack.Text可能是最简单的方法之一。

背景 :ServiceStack.Text是一个独立的,无依赖的序列化库,包含ServiceStack的文本处理function

 using ServiceStack.Text; // Create our arguments object: object args = new { your = "Some", properties = "Other", here = "Value", }; var resultString = fullUrl.PostJsonToUrl(args); results = resultString.Trim().FromJson(); 

在我看来, PostJsonToUrlFromJson扩展方法是一些很好的语法糖。

上述就是C#学习教程:寻找带有JSON客户端库的REST分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1029147.html

(0)
上一篇 2022年1月12日
下一篇 2022年1月12日

精彩推荐