简体   繁体   English

将 Json 数据从 URL 导入 SQL 服务器

[英]Import Json data from URL to SQL server

I have a .Json URL that contains Json format data.我有一个包含 Json 格式数据的 .Json URL。

HTTPS://XXXX/fetch-transaction?fromdate=2020-10-13&toDate=2020-10-20 ( Not working just an example ) HTTPS://XXXX/fetch-transaction?fromdate=2020-10-13&toDate=2020-10-20(不工作只是一个例子

[
    {
        "orderId": 110,
        "consignmentNumber": "TEST",
        "itemNumbers": [
            "TEST"
        ],
        "country": "UK",
        "orderType": "ORDER_HOME_DELIVERY",
        "paymentTransactionId": "395611",
        "priceInOre": 5900,
        "paidAt": "2020-10-16 10:51:08",
        "orderNumber": "7000067718",
        "articleName": "SOUTH-2"
    }
]

I would like to insert data into a SQL server table and wonder if it's possible to use SQL server and t-SQL directly here or should I go for VS and C#?我想将数据插入到 SQL 服务器表中,并想知道是否可以直接在此处使用 SQL 服务器和 t-SQL,还是应该使用 VS 和 C#?

If C# is the preferred choice can someone pleae guide me on how I would accomplish it?如果 C# 是首选,有人可以指导我如何完成它吗? I have created a Console application in Visual studio (however it might be a better solution to use something els then to create a command line applcation?) or guide me in the right direction.我在 Visual Studio 中创建了一个控制台应用程序(但是,使用 els 然后创建命令行应用程序可能是更好的解决方案?)或指导我朝着正确的方向前进。

You can try the following code to get the value from the json txt and transfer it to the sql server table.您可以尝试以下代码从json txt中获取值并将其传输到sql server表。

using Newtonsoft.Json;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.IO;
using System.Linq;
class Program
    {
        static void Main(string[] args)
        {
            string json = File.ReadAllText("D:\\test1.txt");
            List<Example> list = JsonConvert.DeserializeObject<List<Example>>(json);
            string strcon = @"Connstr";
            SqlConnection connection = new SqlConnection(strcon);
            connection.Open();
            string sql = "Insert into JsonData(orderId,consignmentNumber,itemNumbers,country,orderType,paymentTransactionId,priceInOre,paidAt,orderNumber,articleName) values(@orderId,@consignmentNumber,@itemNumbers,@country,@orderType,@paymentTransactionId,@priceInOre,@paidAt,@orderNumber,@articleName)";
            SqlCommand command = new SqlCommand(sql, connection);
            foreach (Example item in list)
            {
                command.Parameters.AddWithValue("@orderId", item.orderId);
                command.Parameters.AddWithValue("@consignmentNumber", item.consignmentNumber);
                command.Parameters.AddWithValue("@itemNumbers", item.itemNumbers.First());
                command.Parameters.AddWithValue("@country", item.country);
                command.Parameters.AddWithValue("@orderType", item.orderType);
                command.Parameters.AddWithValue("@paidAt", item.paidAt);
                command.Parameters.AddWithValue("@paymentTransactionId", item.paymentTransactionId);
                command.Parameters.AddWithValue("@priceInOre", item.priceInOre);
                command.Parameters.AddWithValue("@articleName", item.articleName);
                command.Parameters.AddWithValue("@orderNumber", item.orderNumber);
            }
            command.ExecuteNonQuery();
            connection.Close();
      
            

        }
    }
    public class Example
    {
        public int orderId { get; set; }
        public string consignmentNumber { get; set; }
        public List<string> itemNumbers { get; set; }
        public string country { get; set; }
        public string orderType { get; set; }
        public string paymentTransactionId { get; set; }
        public int priceInOre { get; set; }
        public string paidAt { get; set; }
        public string orderNumber { get; set; }
        public string articleName { get; set; }
    }

Final result:最后结果:

在此处输入图片说明

Edit:编辑:

var json = new WebClient().DownloadString("URL");

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM