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

Import Json data from URL to SQL server

我有一个包含 Json 格式数据的 .Json URL。

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"
    }
]

我想将数据插入 SQL 服务器 table 并想知道是否可以在这里直接使用 SQL 服务器和 t-SQL 或者我应该选择 VS 和 C#?

如果 C# 是首选,有人可以指导我如何完成它吗? 我在 Visual studio 中创建了一个控制台应用程序(但是使用其他东西然后创建命令行应用程序可能是更好的解决方案?)或指导我正确的方向。

您可以尝试以下代码从json txt 中获取值并将其传输到sql 服务器table。

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; }
    }

最终结果:

编辑:

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