sql-server - SSIS:导入具有 JSON 格式数据的文本文件并加载到 SQL Server
问题描述
我需要在 SSIS 中创建一个导入包,以从具有 JSON 格式内容的文本文件中加载数据并加载到 SQL Server 数据库中。
以下是文本文件中的一个示例记录:
{
"apeId": "677ac547367456defgea42beb9bebc",
"apeName": "DISCOVERY STATION",
"id": "e1a3af5af654178a0ff5ffc01fd014a7",
"imageUrl": "http://172.16.6.9:8080/427/21e3698fd99ffb5c.jpg",
"lat": "25.038544",
"lng": "52.146149",
"monitorTask": "Traffic",
"resultTime": "2021-03-26 16:05:25",
"sceneImgUrl": "http://172.16.6.9:8080/427/21e3d99ffb5c.jpg",
"subType": "CAR",
"subjectId": "H66621",
"trackId": "329741647"
}
我只需要从中获取值并加载到 SQL 中,关键是我的表列名。理解它可以通过脚本任务来完成。请在代码示例上帮助我。
谢谢
解决方案
使用像https://json2csharp.com/这样的工具来创建类并对其进行反序列化。
// Root[] myDeserializedClass = JsonConvert.DeserializeObject<Root[]>(myJsonResponse);
public class Root
{
public string apeId { get; set; }
public string apeName { get; set; }
public string id { get; set; }
public string imageUrl { get; set; }
public string lat { get; set; }
public string lng { get; set; }
public string monitorTask { get; set; }
public string resultTime { get; set; }
public string sceneImgUrl { get; set; }
public string subType { get; set; }
public string subjectId { get; set; }
public string trackId { get; set; }
}
这可能不是您的完整解决方案。粘贴整个 Json 文件,因为您可能会有一个类列表/数组。但在那之后就很简单了。
在这种情况下使用 foreach 循环。
foreach(var r in Root)
{
//push to SSIS
}
推荐阅读
- c - 递归计算标准差
- mysql - 查询错误结果 JPA Spring Boot
- c++ - 如何重新着色二进制图像中的形状以进行索引(填充)?
- java - 寻求有关使用 DAWG 实现文字游戏的建议
- mysql - mysql从3个表中更新列值
- pyspark - PySpark 应用程序中的 Hive 查询
- javascript - 无法使用 indexof 函数获取值
- python - 在 Python matplotlib 中设置 boxplot 'boxes' facecolor 透明度
- swiftui - 为什么 SwiftUI Image 添加额外的填充来封闭 VStack?
- php - php artisan optimize NULL.ERROR: Symfony\Component\Debug\Exception\FatalThrowableError: Call to undefined method Illuminate\Foundation\Bootstrap