c# SSIS脚本组件中的转义双引号从SQL数据发送JSON

Posted

技术标签:

【中文标题】c# SSIS脚本组件中的转义双引号从SQL数据发送JSON【英文标题】:Escape double quoutes in c# SSIS script component send JSON from SQL data 【发布时间】:2022-01-07 21:36:29 【问题描述】:

我遇到了难题。我在 SQL 中有 1 列称为 [tag],此列有类似“Tag1\Tag1a”、“Tag2\Tag2b”的数据,...我需要将其发送到 API,在 API 代码中它应该如下所示:


"contact": 
"email": "Row.email",
"name": "Row.name",
"externalId": "Row.exid",
"company": "Row.company",
"address": 
"streetAddress": "Row.strAdd",
"zipCode": "Row.code",
"city": "Row.city",
"country": "Row.country"

,
"owner": "Row.owner",
"properties": 
"someprop": "Row.someprop"
,
  "province": "Row.province",
  
  "dictionaryProperties": [
  "name" : "nameOfProp",
  "type" : "NUMBER",
  "value": "Row.Value"
  
],
"tags": [Row.tags],
"apiKey": "apikey",
"clientId": "cid",
"sha": "sha",
"requestTime": req.time,
"async": "true"

在 c# 中,我从 InputBuffer 中获取了带有数据的字符串,当我从 Input 获取数据到字符串时出现错误 400,我检查了这是因为标签,我如何使用双引号将这些标签从输入中获取到字符串?

var data = " \"contact\":  \"email\": \"" + Row.email + "\", \"name\": \"" + Row.name + "\", \"externalId\": \"" + Row.exid.ToString() + "\", \"company\": \"" + Row.company + "\", \"address\":  \"streetAddress\": \"" + Row.strAdd + "\", \"zipCode\": \"" + Row.code + "\", \"city\": \"" + Row.city + "\", \"country\": \"" + Row.country + "\"  , \"owner\": \"" + Row.owner + "\", \"properties\":  \"someProp\": \"" + Row.prop + "\" , \"province\": \"" + Row.province + "\", \"dictionaryProperties\": " + Row.value + ", \"tags\": [" + Row.tags + "], \"apiKey\" : \"apikey\", \"clientId\": \"cid\", \"sha\": \"sha\", \"requestTime\": req.time, \"async\": \"true\" ";

1.我尝试从 sql 发送空 [] - 不起作用,但是当我将其放入代码中而不从输入中获取时,它起作用了 2.我尝试将 SQL 列中的数据从 "Tag1\Tag1a","Tag2\Tag2b" 修改为 "Tag1/Tag1a","Tag2/Tag2b" 或 ["Tag1/Tag1a","Tag2/Tag2b"] 3.我尝试添加@to c# 数据 - 也不起作用。

有什么想法吗?

【问题讨论】:

这是一种创建 JSON 数据的奇怪方式。相反,您可以使用一堆类创建指令并用数据填充它们并将其序列化为 JSON 格式。 我正在尝试课程,但我不能像需要 api 那样做同样的 json。 【参考方案1】:

我在 Ole DB 源代码中从 unicode 流文本更改为 unicode 文本并且它工作正常!

感谢您的帮助

【讨论】:

以上是关于c# SSIS脚本组件中的转义双引号从SQL数据发送JSON的主要内容,如果未能解决你的问题,请参考以下文章

SSIS 包中的 C# 脚本在 SQL Server 表的数据执行过程中挂起,没有明确的错误消息

sql注入逃逸双引号转义

用R中的双引号替换转义的双引号

在 SSIS 中使用 C# 从 JSON API 读取

Spark SQL 读取已转义双引号的 JSON 文件

Spring Data JPA / Flyway 转义双引号