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的主要内容,如果未能解决你的问题,请参考以下文章