使用C#获取数据的JSON API查询

时间:2017-12-03 10:38:08

标签: c# json ssis

我是编程的初学者,最近学习并使用http uri获取数据,然后使用SSIS中的C#从流中解析json字符串,并能够将数据加载到sql server数据库中。

以下是我使用的示例代码..

System.Uri uri = new Uri("API URL");
WebRequest webRequest = HttpWebRequest.Create(uri);
HttpWebRequest httpWebRequest = (HttpWebRequest)webRequest;
NetworkCredential networkCredential = new NetworkCredential("LOGIN","Password");
credentialCache.Add(uri,"Basic",networkCredential);
WebResponse webResponse = webRequest.GetResponse();
...

但是我正在尝试为另一个使用POST方法的api设置相同类型的连接。

查询看起来像.. URL + JSON API查询,类似于..

{"JSON" : {
"name": "Dataset",
"ColumnSelect": ["Name","Age","Email"],
"sort":["Name"],
"filterList": [
{
"Attribute": "Age",
"Operator": ">",
"Value": ["25"]
}],"returnObject"

我不知道如何使用它来查询数据并将数据加载到sql,如http请求。有人可以告诉我正确的方向来实现这一目标。谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

我不确定您的方案是什么,但据我所知,您正在尝试从某个服务器获取数据,并将数据存储在您的数据库中。

您已经使用HTTP GET实现了它,但这次您需要使用POST。

与GET和POST的基本区别在于,GET用于查询现有数据,但在POST中,您正在向服务器提供内容。 (当然还有更多差异,请查看此链接:https://www.w3schools.com/tags/ref_httpmethods.asp

这可以轻松完成:

  1. Prepare your POST request,您需要为参数提供内容。
  2. 根据您发布的JSON:

    为传入的响应字符串创建类
    public class JSON
    {
        public string name { get; set; }
    
        public string[] ColumnSelect { get; set; }
    
        public string[] sort { get; set; }
    
        public filterList filterList { get; set; }
    }
    
    public class filterList
    {
        public string Attribute { get; set; }
    
        public string Operator { get; set; }
    
        public string[] Value { get; set; }
    }
    
  3. 当你有响应字符串(字符串化JSON)时,通过JSON.NET反序列化它。

  4. 现在你将它们作为.NET对象。您可以使用Entity Framework将它们提交到数据库。
  5. 如果您需要有关任何步骤的建议,我可以编辑我的答案。